微服务

SOA 和 微服务

  • SOA 服务治理中间件

    • 解决集群化部署,模块故障蔓延,模块调用出错,模块调用负载均衡
  • Spring Cloud 底层 http 调用

不使用框架进行跨服务访问

  • server1 中 接口
@RestController
public class HelloController {@GetMapping("/hello")public String test1(){return "hello";}}
复制代码
  • server2 中 访问 server1中的服务
@RestController
public class HelloController {@GetMapping("/test1")public void test1() throws IOException {URL url = new URL("http://localhost:8080/hello");HttpURLConnection con = (HttpURLConnection) url.openConnection();con.connect();if(con.getResponseCode() == 200){BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));String s = br.readLine();System.out.println(s);br.close();}}@GetMapping("/test2")public void test2() throws IOException {URL url = new URL("http://localhost:8080/1.jpg");HttpURLConnection con = (HttpURLConnection) url.openConnection();con.connect();if(con.getResponseCode() == 200){FileOutputStream fos = new FileOutputStream(new File("D:\\1.jpg"));InputStream is = con.getInputStream();byte[] buf = new byte[1024];int len = 0;while ((len = is.read(buf)) != -1){fos.write(buf,0,len);}fos.close();is.close();}}
}复制代码

搭建服务注册中心

  1. 新建一个maven 项目,删掉src目录
  1. 在maven 内添加 Spring Boot 节点

springcloud 版本要求严格

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}
复制代码
  • 在 application.properties 中,既是微服务又是服务注册中心 需要指定服务注册中心的地址
server.port=1111
spring.application.name=eureka
eureka.client.register-with-eureka=true
# 指定服务注册中心的地址
eureka.client.service-url.defaultZone=http://localhost:1111/eureka
复制代码

搭建集群

  1. 拷贝两份配置文件
  1. 在 hosts 文件中添加配置
127.0.0.1 peer1
127.0.0.1 peer2
复制代码
  1. 配置文件
# application-peer1.properties
server.port=1111
spring.application.name=eureka
eureka.instance.hostname=peer1
eureka.client.register-with-eureka=true
# 指定服务注册中心的地址
eureka.client.service-url.defaultZone=http://peer2:1112/eureka# application-peer2.properties
server.port=1112
spring.application.name=eureka
eureka.instance.hostname=peer2
eureka.client.register-with-eureka=true
# 指定服务注册中心的地址
eureka.client.service-url.defaultZone=http://peer1:1111/eureka
复制代码
  1. 打包 eureka

  2. 启动两个实例

java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
复制代码
  1. 启动成功

Spring Cloud简介和服务中心的搭建相关推荐

  1. spring cloud多模块项目框架搭建-Redis-Cluster集群搭建及系统集成

    第九章 Redis-Cluster集群搭建及系统集成 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块微服务项目框架,并不是一个spring cloud的demo而已,提供系统 ...

  2. spring cloud多模块项目框架搭建-集成lombok

    第五章: spring cloud多模块项目框架搭建-集成lombok 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块微服务项目框架,并不是一个spring cloud的de ...

  3. Spring cloud简介及Netflix组件介绍

    Spring cloud简介 Spring Cloud是基于Spring Boot的一整套实现微服务的框架.他提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策 ...

  4. spring cloud多模块项目框架搭建-集成SLF4J和log4j2日志组件

    第七章  集成SLF4J和log4j2进行日志管理 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块项目框架,并不是一个spring cloud的demo而已,提供分布式系统的 ...

  5. Spring Cloud(F版)搭建高可用服务注册中心

    上一篇文章[Spring Cloud搭建注册中心]成功搭建了一个Eureka Server服务注册中心,不过相信细心的朋友都会发现,这个服务注册中心是一个单节点服务注册中心,万一发生故障或者服务器宕机 ...

  6. Spring Boot(2.1.2.RELEASE) + Spring Cloud (Finchley.RELEASE)搭建服务注册和发现组件Eureka

    前言:由于版本原因,部分关于Spring Cloud的书中使用的是Spring Boot 1.x 版本,很多配置或名称在新版本中已经发生了改变.此篇文章记录的是使用较新的Spring Boot 2.x ...

  7. springcloud官方文档_通俗易懂!Spring Cloud简介:官方文档翻译版

    什么是微服务? "微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通 ...

  8. spring cloud微服务分布式云架构 - Spring Cloud简介

    Spring Cloud是一系列框架的有序集合.利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现.注册.配置中心.消息总线.负载均衡.断路器.数据监控等(这里只简单的列了 ...

  9. Spring Cloud云架构 - commonservice-sso服务搭建(一)

    2019独角兽企业重金招聘Python工程师标准>>> 前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行 ...

最新文章

  1. iOS中KVO模式的解析与应用
  2. OpenCV+OpenGL 双目立体视觉三维重建
  3. 玩通信设备的,来这里学习
  4. 8086CPU跳转指令
  5. 通过一个简单的例子,了解如何单步调试 Cypress 代码
  6. oracle 老白,老白学编程 - Netdata学习 - numa
  7. python画烟花的代码_电脑怎么用代码画烟花?
  8. UE3 Lightmass静态全局光照
  9. java 压缩包添加文件,如何在Java中向现有zip文件添加条目?
  10. 全栈JavaScript之路(十三)了解 ElementTraversal 规范
  11. 多个Activity之间的跳转(1)
  12. FlashBuild4序列号生成与使用方法
  13. PostgreSQL Array 数组类型与 FreeSql 打出一套【组合拳】
  14. 如何利用计算机打印较大的字,Word打印技巧:打印大字-word技巧-电脑技巧收藏家...
  15. Web页面无法执行CGI的exe程序
  16. 防爆机器人布里茨还能买到吗_LOL防暴机器人 布里茨皮肤
  17. JVM 垃圾收集器Serial、Parallel Scavenge、ParNew、CMS、G1
  18. 嵌入式编程与软件编程思想不同浅见
  19. 微信小程序官方bug
  20. 汽车数据聚类分析——天池竞赛

热门文章

  1. IEA:截止2015年全球太阳能光伏装机累计超228GW
  2. iOS - OC Foundation 框架
  3. java设计模式--原始模型模式
  4. jQuery获取和设置元素
  5. linux下查看cc攻击
  6. EIGRP和传统的距离矢量路由协议的区别
  7. Vista下控件无法安装解决办法
  8. 概说《TCP/IP详解 卷2》缘起
  9. 分布式系统 缓存穿透与失效时的雪崩效应
  10. 买房签定金合同或转让合同之前需要了解到的一些问题