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

教程网站建设广州网站开发设计平台

教程网站建设,广州网站开发设计平台,软件和网站开发,大理北京网站建设SpringCloudAlibaba微服务实战系列#xff08;一#xff09;Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构#xff1a;近几年技术的飞速发展#xff0c;各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可一Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构近几年技术的飞速发展各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可而随着业务量激增或网站流量的增加必会暴露致命缺陷。 SOAService Oriented Architecture 面向服务的体系结构。旨在提升代码复用性及扩展性降低耦合等。 如一个外卖流程分配送餐是一个服务短信通知也是一个服务。这些服务独立部署通过网络互相调用(HTTP等方式)形成完整的服务系统。 微服务微服务是由多个功能单一的小服务组成的服务可以根据业务进行拆分这些服务独立部署不同的服务可以采用不同的技术(不同的变成语言或数据库等)服务之间采用HTTP等轻量协议进行交互传输数据可看成是更细粒度的SOA架构。 微服务优缺点 优点 代码复杂度低根据业务细粒度划分业务功能明确清晰体积小便于理解和维护技术选型不被限制单个服务可根据自身的业务选择不同的语言和技术栈实现独立部署部署的影响范围小服务可伸缩性某些服务的承载量大时可多部署几个节点负载承载量小时可减少几个节点节省服务器资源错误隔离多服务中一个服务的宕机不会影响整个系统的运行分库更容易不同服务连接不同的数据库 缺点 架构系统复杂不是简单的服务调用要充分考虑网络延迟和故障带来的影响必要时可能需要采用消息中间件服务依赖如A服务调B然后B调C当C服务变更时B和A都需要进行改动数据一致性问题典型的分布式事务的问题接口排错困难多个服务时需要同时查看它们的log日志部署和运维检查和监控多个服务的健康状态快速部署、根据服务负载进行服务动态伸缩都是不小的挑战 SpringCloud技术栈 那为了更好的管理微服务SpringCloud技术诞生了。常用技术栈实现 技术栈技术栈落地实现服务注册和发现Eureka、Zookeeper、Consul、Nacos熔断、降级、限流Hystrix、Sentinel服务调用Ribbon、LoadBalancer、Feign、OpenFeign、Dubbo配置Config、Zookeeper、Consul、Nacos网关Zuul、Gateway消息总线Bus、Nacos 以上的技术实现方案有SpringCloudNetflix的也有SpringCloudAlibaba的。此系列我们只使用Alibaba的。 以下技术栈 Nacos:做配置和服务注册发现RocketMQ:阿里的分布式消息中间件提供可靠的消息发布和订阅Sentinel:做服务限流、降级、熔断功能Seata:解决分布式事务问题保证数据的一致性 开始实战 环境 在实战前先确保我们的开发环境 java8mavenIDEA工具mysql 5.7及以上 注意IDEA中如果和Maven的版本不匹配会报错Unable to import maven project自己调整下版本吧 SpringBoot起步 在创建一个项目时首先要注意的就是和SpringCloud和Alibaba的版本是否兼容看一下SpringBoot和cloud的版本兼容 到spring官网或者阿里云的网页创建项目都可以。先创建一个项目导入到IDEA中吧 导入后将SpringBoot版本改为2.6.11的即可 然后再创建子module(服务者和消费者)在父工程主要做版本依赖管理 propertiesjava.version8/java.versionboot.version2.6.11/boot.versioncloud.version2021.0.4/cloud.versioncloud.alibaba.version2021.0.4.0/cloud.alibaba.version /propertiesdependencyManagementdependencies!--springboot依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${boot.version}/versiontypepom/typescopeimport/scope/dependency!--cloud的依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${cloud.version}/versiontypepom/typescopeimport/scope/dependency!--cloud.alibaba依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${cloud.alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies /dependencyManagementbuildplugins!--指定Maven的插件和编译的jdk版本若不指定maven3默认使用jdk1.5--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.7.0/versionconfigurationsource1.8/source !--源代码使用的jdk版本--target1.8/target !--编译后生成的class文件的版本--encodingUTF-8/encoding !--字符编码集--/configuration/plugin/plugins /buildnacos的安装和配置 注意nacos需要依赖jdk环境必须是1.8及以上的版本 nacos的下载页面https://github.com/alibaba/nacos/releases 瞅好对应的版本关系下载即可。 下载完毕后cmd命令窗口启动即可。 注如果下载的时2.2.1及以上版本的nacos把默认的密钥给设置为空了需要我们手动给添加上然后在启动 在nacos的配置文件application.properties中 nacos.core.auth.plugin.nacos.token.secret.keySecretKey012345678901234567890123456789012345678901234567890123456789启动nacos startup.cmd -m standalone启动完成后登录nacos的网址看下http://localhost:8848/nacos默认的用户名和密码都是nacos。 简单集成nacos 创建三个子工程分别是provider8001、provicer-8002和consumer9001然后注册进入nacos后通过Ribbon实现远程调用。 工程结构如图3个工程都引入健康监控和nacos的服务注册发现 以consumer项目为例的配置文件 server:port: 8001 spring:application:name: provider # 应用名cloud:nacos:discovery:server-addr: localhost:8848 # nacos服务地址图例 启动类及注解 SpringBootApplication EnableDiscoveryClient public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);} }启动三个项目查看nacos服务页的变化。 服务已经注册且provider的实例是两个莫得问题~ 采用RestTemplateRibbon实现简单远程调用 服务提供者提供接口(两个提供者都写上) RestController // RestController注解是ControllerResponseBody public class TestController {Value(${server.port})private String port; // 获取配置文件中写的程序端口号RequestMapping(/test) // 标记是该方法的请求public String test() {return hello world test port; // 返回值是一个字符串因为用了RestController所以不必额外加ResponseBody了} }消费者还需要引入loadbalancer的依赖高版本中需要自己手动引入 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId /dependency服务消费者采用JavaConfig的方式将配置类做好代码如下 Configuration public class GenericConfiguration { // 常规配置类LoadBalanced // 标注此注解后,RestTemplate就具有了客户端负载均衡能力Beanpublic RestTemplate restTemplate(){ // 创建RestTemplate并交个Spring容器管理return new RestTemplate();} }消费者调用接口 RestController public class TestController {private final String SERVER_URL http://provider; // 这里的服务地址填写注册到Nacos的应用名称Resourceprivate RestTemplate restTemplate;RequestMapping(/test) // 标记是该方法的请求public String test() {return restTemplate.getForObject(SERVER_URL /test, String.class);//调用提供者/test接口}}启动项目测试调用执行 curl localhost:9001/test可看到远程调用以及简单的负载实现效果。
http://www.hkea.cn/news/14474302/

相关文章:

  • 资讯网站优化排名app推广营销
  • 四川建设招投标网站网站检索功能怎么做
  • 猪八戒网站怎么做任务网站配色的方案
  • 杭州专业做网站的公司东莞网站建设硅胶
  • 品牌设计网站怎么做seo推广哪家公司好
  • 网站建设政务新媒体宁波专业网站定制制作服务
  • 网站建设如何弄链接做可以上传文件的网站
  • 河南网站推广优化公司网站下载免费软件安装
  • wordpress建站技巧购物网站开发计划书
  • 体育西网站开发定制北京海淀区大学
  • 网站空间的分类公司注册核名在哪个网站
  • 外贸soho做网站怎么做企业推广类网站
  • 做平面设计的网站有哪些商城网站建设最好的公司
  • 月嫂的个人简历网站模板wordpress顶部栏如何修改
  • 毛织厂家东莞网站建设附近广告喷绘制作公司
  • 太原网站建设晋icp备娱乐网站名字
  • 临汾网站建设网页设计尺寸单位
  • 博客网站 做淘宝客网站开发人员任职资格
  • 西安企业网站建设公司《网站建设》项目实训报告
  • dw做网站 后台用什么后台wordpress制作的网页
  • 佛山h5模板建站上海外贸网站设计
  • 专业的网站建设官网wordpress短链接清除
  • 做网站优化常用工具如何制作网站最简单的方法
  • 公司做网站比较好的东莞高埗做网站哪个公司好
  • 视频网站用什么做的好处赣州酒店网站建设
  • 网站死链怎么处理如何制作一个电脑软件
  • 温州做企业网站中国企业排行榜前十名
  • 上海服饰网站建设网站建设 深路互动
  • 仿制别人网站wordpress销售
  • 利用帝国软件如何做网站信息流广告名词解释