This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
|
||||
<h3><a class="anchor" href="net.html#net_sncp" target="_blank" aria-hidden="true">亮点三. SNCP协议</a></h3>
|
||||
|
||||
<p> SNCP(Service Node Communicate Protocol)是Redkale独有的RPC协议, 主要用于进程间的数据传输,支持泛型和子类的数据转换。使用者通过配置文件可以轻易的将Service由<a href="service.html#service_local" target="_blank">本地模式</a>变成<a href="service.html#service_remote" target="_blank">远程模式</a>。<a href="service.html#service_remote" target="_blank">远程模式Service</a>使用SNCP协议与其他进程的Service通信。使用者无需对远程通信接口使用类似Mina的第三方包自行开发。SNCP是Redkale的核心功能,其微服务架构都是基于<a href="service.html#service_local" target="_blank">本地模式Service</a>和<a href="service.html#service_remote" target="_blank">远程模式Service</a>。</p>
|
||||
<p> SNCP(Service Node Communicate Protocol)是Redkale独有的RPC协议, 主要用于进程间的数据传输,支持泛型和子类的数据转换。开发人员通过配置文件可以轻易的将Service由<a href="service.html#service_local" target="_blank">本地模式</a>变成<a href="service.html#service_remote" target="_blank">远程模式</a>。<a href="service.html#service_remote" target="_blank">远程模式Service</a>使用SNCP协议与其他进程的Service通信。开发人员无需对远程通信接口使用类似Mina的第三方包自行开发。SNCP是Redkale的核心功能,其微服务架构都是基于<a href="service.html#service_local" target="_blank">本地模式Service</a>和<a href="service.html#service_remote" target="_blank">远程模式Service</a>。</p>
|
||||
|
||||
|
||||
<h3><a class="anchor" href="source.html#source_datasource" target="_blank" aria-hidden="true">亮点四. DataSource</a></h3>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<section class="main-content">
|
||||
<h3><a id="service_intro" class="anchor" href="#" aria-hidden="true"></a>Service 组件介绍</h3>
|
||||
|
||||
<p> Service 是Redkale最核心的组件,依赖于Convert、SNCP协议、Resource依赖注入。Service主要处理业务逻辑和操作数据层,是微服务架构中的单一原子服务。每一个Service实例分两种模式: <b>本地模式</b>和<b>远程模式</b>。其模式由 conf/application.xml 文件来配置。使用者在调用过程中通常不需要区分当前Service实例是哪种模式。<br/>
|
||||
<p> Service 是Redkale最核心的组件,依赖于Convert、SNCP协议、Resource依赖注入。Service主要处理业务逻辑和操作数据层,是微服务架构中的单一原子服务。每一个Service实例分两种模式: <b>本地模式</b>和<b>远程模式</b>。其模式由 conf/application.xml 文件来配置。开发人员在调用过程中通常不需要区分当前Service实例是哪种模式。<br/>
|
||||
为了能确保本地模式与远程模式自由切换,对Service的实现类有一定的约束: <br/>
|
||||
1、Service实现类会被继承,不能修饰为 <b>final</b> <br/>
|
||||
2、带@RpcMultiRun注解的方法会被重载,不能修饰为 <b>final</b> <br/>
|
||||
@@ -289,6 +289,11 @@
|
||||
</pre></div>
|
||||
<p> 生成远程模式Service时发现参数带有@RpcCall注解的方法,在远程调用返回结果时会进行回调处理。</p>
|
||||
|
||||
<h3><a id="service_rest" class="anchor" href="#" aria-hidden="true"></a>Service REST</h3>
|
||||
<p> RestService提供类似Spring Boot的功能。开启REST功能的HTTP Server在实例化标记为@RestService的Service后自动生成对应的HttpServlet,免去开发人员编写HttpServlet的工作量。</p>
|
||||
|
||||
<div class="highlight"></div>
|
||||
|
||||
|
||||
<footer class="site-footer">
|
||||
<span class="site-footer-owner"> 欢迎加入Redkale QQ群: 527523235</span>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
3、动态更新变更后的数据库连接参数。 <br/>
|
||||
4、读写分离的简易配置。 <br/>
|
||||
5、进程间的缓存自动同步。 <br/>
|
||||
数据库操作方面常见的是过滤查询操作,JPA规范中的JPQL虽然简化了SQL,但是对于动态产生的过滤条件,使用者还是无法免去组装过滤条件的过程(无论JPQL还是CriteriaQuery), DataSource定义了FilterBean接口可以省略组装条件的过程,FilterNode提供了类似CriteriaQuery的功能,且这两种对象都可以序列化,给<a href="service.html#service_remote" target="_blank">远程模式Service</a>提供了基础,微服务架构提倡服务之间尽量降低耦合,因此DataSource仅支持简单的关联查询,复杂的表关联查询或统计应放在数据分析系统中。一个服务通常部署多个进程,若用JPA的缓存则进程之间的缓存无法同步,而DataSource采用SNCP协议即可方便地达到自动同步缓存功能。JPA无法在主数据库异常时动态切换到备份数据库,DataSource会监听<a href="#source_confxml">persistence.xml</a>文件,当文件配置发生变化时自动切换新的数据库配置。<br/>
|
||||
数据库操作方面常见的是过滤查询操作,JPA规范中的JPQL虽然简化了SQL,但是对于动态产生的过滤条件,开发人员还是无法免去组装过滤条件的过程(无论JPQL还是CriteriaQuery), DataSource定义了FilterBean接口可以省略组装条件的过程,FilterNode提供了类似CriteriaQuery的功能,且这两种对象都可以序列化,给<a href="service.html#service_remote" target="_blank">远程模式Service</a>提供了基础,微服务架构提倡服务之间尽量降低耦合,因此DataSource仅支持简单的关联查询,复杂的表关联查询或统计应放在数据分析系统中。一个服务通常部署多个进程,若用JPA的缓存则进程之间的缓存无法同步,而DataSource采用SNCP协议即可方便地达到自动同步缓存功能。JPA无法在主数据库异常时动态切换到备份数据库,DataSource会监听<a href="#source_confxml">persistence.xml</a>文件,当文件配置发生变化时自动切换新的数据库配置。<br/>
|
||||
为了降低学习成本,DataSource重用了JPA里的部分注解与配置文件,使用方法基本相同,与JPA用法的区别是注解只能标记于字段,不能标记在方法上。
|
||||
</p>
|
||||
<table style="margin: auto;">
|
||||
|
||||
Reference in New Issue
Block a user