当前位置: 首页 > news >正文

万达网站建设中信建设有限责任公司获奖

万达网站建设,中信建设有限责任公司获奖,网站页面设计需要遵循的六大原则,怎么自己制作图片作者#xff1a;孙彩荣 很遗憾#xff0c;这不是一篇关于中间件理论或原理讲解的文章#xff0c;没有高深晦涩的工作原理分析#xff0c;文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例#xff0c;一步一步演示如何以最低成本实现 Apache Dubbo 体系与 S…作者孙彩荣 很遗憾这不是一篇关于中间件理论或原理讲解的文章没有高深晦涩的工作原理分析文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例一步一步演示如何以最低成本实现 Apache Dubbo 体系与 Spring Cloud 体系的互通进而实现不同微服务体系的混合部署、迁移等帮助您解决实际架构及业务问题。 背景与目标 如果你在微服务开发过程中正面临以下一些业务场景需要解决那么这篇文章可以帮到您 您已经有一套基于 Dubbo 构建的微服务应用这时你需要将部分服务通过 REST HTTP 的形式非接口、方法模式发布出去供一些标准的 HTTP 端调用如 Spring Cloud 客户端整个过程最好是不用改代码直接为写好的 Dubbo 服务加一些配置、注解就能实现。您已经有一套基于 Spring Cloud 构建的微服务体系而后又构建了一套 Dubbo 体系的微服务你想两套体系共存因此现在两边都需要调用到对方发布的服务。也就是 Dubbo 应用作为消费方要调用到 Spring Cloud 发布的 HTTP 接口Dubbo 应用作为提供方还能发布 HTTP 接口给 Spring Cloud 调用。出于一些历史原因你正规划从一个微服务体系迁移到另外一个微服务体系前提条件是要保证中间过程的平滑迁移。 对于以上几个场景我们都可以借助 Dubbo3 内置的 REST 编程范式支持实现这让 Dubbo 既可以作为消费方调用 HTTP 接口的服务又可以作为提供方对外发布 REST 风格的 HTTP 服务同时整个编码过程支持业界常用的 REST 编程范式如 JAX-RS、Spring MVC 等因此可以做到基本不改动任何代码的情况下实现 Dubbo 与 Spring Cloud 体系的互相调用。 关于这一部分更多的设计与理论阐述请参见这里的博客文章 [ 1]关于 Dubbo REST 的更多配置方式请参见 rest 使用参考手册 [ 2] 示例一Dubbo 调用 Spring Cloud 在已经有一套 Spring Cloud 微服务体系的情况下演示如何使用 Dubbo 调用 Spring Cloud 服务包含自动的地址发现与协议传输。在注册中心方面本示例使用 Nacos 作为注册中心对于 Zookeeper、Consul 等两种体系都支持的注册中心同样适用。 设想你已经有一套 Spring Cloud 的微服务体系现在我们将引入 Dubbo 框架让 Dubbo 应用能够正常的调用到 Spring Cloud 发布的服务。本示例完整源码请参见 samples/dubbo-call-sc [ 3] 。 启动 Spring Cloud Server 示例中 Spring Cloud 应用的结构如下 应用配置文件如下 server:port: 8099 spring:application:name: spring-cloud-provider-for-dubbocloud:nacos:serverAddr: 127.0.0.1:8848 #注册中心以下是一个非常简单的 Controller 定义发布了一个 /users/list/的 http 端点。 RestController RequestMapping(/users) public class UserController {GetMapping(/list)public ListUser getUser() {return Collections.singletonList(new User(1L, spring cloud server));} }启动 SpringCloudApplication通过 cURL 或浏览器访问 http://localhost:8099/users/list 可以测试应用启动成功。 使用 Dubbo Client 调用服务 Dubbo client 也是一个标准的 Dubbo 应用项目基本结构如下 其中一个比较关键的是如下接口定义正常情况下以下接口可以直接从原有的 Spring Cloud client 应用中原样拷贝过来即可无需做任何修改。 如果之前没有基于 OpenFeign 的 Spring Cloud 消费端应用那么就需要自行定义一个接口此时不一定要使用 OpenFeign 注解使用 Spring MVC 标准注解即可。 通过 DubboReference 注解将 UserServiceFeign 接口注册为 Dubbo 服务。 DubboReference private UserServiceFeign userService;接下来我们就可以用 Dubbo 标准的方式对服务发起调用了。 ListUser users userService.users();通过 DubboConsumerApplication 启动 Dubbo 应用验证可以成功调用到 Spring Cloud 服务。 示例二Spring Cloud 调用 Dubbo 在接下来的示例中我们将展示如何将 Dubbo server 发布的服务开放给 Spring Cloud client 调用。 示例的相关源码在 samples/sc-call-dubbo [ 4] 启动 Dubbo Server Dubbo server 应用的代码结构非常简单是一个典型的 Dubbo 应用。 相比于普通的 Dubbo 服务定义我们要在接口上加上如下标准 Spring MVC 注解 RestController RequestMapping(/users) public interface UserService {GetMapping(value /list)ListUser getUsers(); }除了以上注解之外其他服务发布等流程都一致使用 DubboService 注解发布服务即可 DubboService public class UserServiceImpl implements UserService {Overridepublic ListUser getUsers() {return Collections.singletonList(new User(1L, Dubbo provider!));} }在服务配置上特别注意我们需要将服务的协议配置为 rest protocol: rest地址发现模式使用 register-mode: instance dubbo:registry:address: nacos://127.0.0.1:8848register-mode: instanceprotocol:name: restport: 8090启动 Dubbo 应用此时访问以下地址可以验证服务运行正常http://localhost:8090/users/list 使用 Spring Cloud 调用 Dubbo 使用 OpenFeign 开发一个标准的 Spring Cloud 应用即可调用以上发布的 Dubbo 服务项目代码结构如下 其中我们定义了一个 OpenFeign 接口用于调用上面发布的 Dubbo rest 服务。 FeignClient(name dubbo-provider-for-spring-cloud) public interface UserServiceFeign {RequestMapping(value /users/list, method RequestMethod.GET)ListUser getUsers(); }定义以下 controller 作为 OpenFeign 和 RestTemplate 测试入口 public class UserController {private final RestTemplate restTemplate;private final UserServiceFeign userServiceFeign;public UserController(RestTemplate restTemplate,UserServiceFeign userServiceFeign) {this.restTemplate restTemplate;this.userServiceFeign userServiceFeign;}RequestMapping(/rest/test1)public String doRestAliveUsingEurekaAndRibbon() {String url http://dubbo-provider-for-spring-cloud/users/list;System.out.println(url: url);return restTemplate.getForObject(url, String.class);}RequestMapping(/rest/test2)public ListUser doRestAliveUsingFeign() {return userServiceFeign.getUsers();} }根据以上 Controller 定义我们可以分别访问以下地址进行验证 OpenFeign 方式 http://localhost:8099/dubbo/rest/test1RestTemplage 方式 http://localhost:8099/dubbo/rest/test2 为 Dubbo Server 发布更多的服务 我们可以利用 Dubbo 的多协议发布机制为一些服务配置多协议发布。接下来我们就为上面提到的 Dubbo server 服务增加 dubbo tcp 协议发布从而达到以下部署效果让这个 Dubbo 应用同时服务 Dubbo 微服务体系和 Spring Cloud 微服务体系。 为了实现这个效果我们只需要在配置中增加多协议配置即可 dubbo:protocols:- id: restname: restport: 8090- id: dubboname: dubboport: 20880同时服务注解中也配置为多协议发布 DubboService(protocolrest,dubbo) public class UserServiceImpl implements UserService {}这样我们就成功的将 UserService 服务以 dubbo 和 rest 两种协议发布了出去多端口多协议的方式dubbo 协议为 Dubbo 体系服务rest 协议为 Spring Cloud 体系服务。 注意 Dubbo 为多协议发布提供了单端口、多端口两种方式这样的灵活性对于不同部署环境下的服务会有比较大的帮助。在确定您需要的多协议发布方式前请提仔细阅读以下多协议配置 [ 5] 文档。 总结 基于 Dubbo 的 rest 编程范式、多协议发布等特性可以帮助你轻松的实现 Dubbo 服务的 http 协议发布让后端服务基于 RPC 高效通信的同时能够更容易的与 http 服务体系打通本示例通过 Dubbo 与 Spring Cloud 两套体系的共存、互通示例非常清晰的演示了编码过程。 此部分内容的正式版本将在 Dubbo 3.3.0 版本正式发布同时还包含 Triple 协议的重磅升级敬请期待 相关链接 [1] 博客文章 https://cn.dubbo.apache.org/zh-cn/blog/2023/01/05/dubbo-%e8%bf%9e%e6%8e%a5%e5%bc%82%e6%9e%84%e5%be%ae%e6%9c%8d%e5%8a%a1%e4%bd%93%e7%b3%bb-%e5%a4%9a%e5%8d%8f%e8%ae%ae%e5%a4%9a%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83/ [2] rest 使用参考手册 https://cn.dubbo.apache.org/zh-cn/overview/reference/proposals/protocol-http/ [3] samples/dubbo-call-sc https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-springcloud/dubbo-call-sc [4] samples/sc-call-dubbo https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-springcloud/sc-call-dubbo [5] 多协议配置 https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/multi-protocols/
http://www.w-s-a.com/news/374577/

相关文章:

  • 济南市住房和城乡建设局网站wordpress mnews主题
  • ios开发网站app网站建设企业有哪些方面
  • 网站主页 优帮云深圳代做网站后台
  • app 与网站网站建设要做什么
  • 厦门国外网站建设公司郑州核酸点推vip服务
  • 免费网线seo外链怎么做
  • 宽带技术网网站wordpress widget hook
  • 山西省住房和城乡建设厅网站报名wordpress添加标签插件
  • 网站怎么自己做外贸网站案例
  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件