java B2B2C Springcloud多租户电子商城系统-spring-cloud-eureka
介绍
spring-cloud-eureka,被动式的服务发现,统一监控和管理你的服务列表。
什么是服务发现?
服务发现就像聊天室一个,每个用户来的时候去服务器上注册,这样他的好友们就能看到你,你同时也将获取好友的上线列表. 在微服务中,服务就相当于聊天室的用户,而服务注册中心就像聊天室服务器一样,目前服务发现的解决方案有Eureka,Consul,Etcd,Zookeeper,SmartStack,等等.
如何使用
创建server端
创建client端
- 创建server端
1.1 单机版
pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
当然了,我已经在全局加入了一些其他配置文件,因为我使用了模块式的开发,所以这里很简单。
配置文件:
server: port: 8761 spring: application: name: eureka-server eureka: instance: lease-expiration-duration-in-seconds: 6 lease-renewal-interval-in-seconds: 2 client: service-url: defaultZone: http://localhost:${server.port}/eureka/
一般端口都是8761,可以随意设置。
开发的时候,一般要设置以下两点
lease-expiration-duration-in-seconds: 6 意思是6秒不发送心跳检查,就删除该实例,默认90秒
lease-renewal-interval-in-seconds: 2 心跳检查的时间,默认30秒
这里报一个 bug :我设置6秒还是不管用,依然是90秒才能剔除。可能是我时间设置的太短吗?大家可以留言告诉我为什么。
启动:
@SpringBootApplication @EnableConfigServer public class SpringCloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigServerApplication.class, args); } }
在启动文件里,加入这样一句话就好啦。
1.2 多节点版本
在系统的hosts里写入:
127.0.0.1 peer1 127.0.0.1 peer2
节点1配置文件 application-peer1.yml :
server: port: 8761 spring: application: name: eureka-server eureka: instance: hostname: peer1 # lease-expiration-duration-in-seconds: 6 # lease-renewal-interval-in-seconds: 2 client: service-url: defaultZone: http://peer2:8762/eureka/
节点2配置文件 application-peer2.yml :
server: port: 8762 spring: application: name: eureka-server eureka: instance: # lease-expiration-duration-in-seconds: 6 # lease-renewal-interval-in-seconds: 2 hostname: peer2 client: service-url: defaultZone: http://peer1:8761/eureka/
如果有更多个节点,更改端口号即可,并在 defaultZone:后面用逗号隔开,增加更多的就好了。
启动方法:
采用不同的配置文件启动:
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1 java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2
如果是用IDEA环境下运行,直接新配置一个运行环境就好了,这里有好多坑,只有你踩过了才能发现真理。其中最主要的是不能用一样的hostname,注册时间有点慢和剔除时间有点慢。
- 创建client端
当然了,也很简单。
pom.xml:
<!--监控--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--服务注册--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
pom需要监控和服务注册,同样,推荐使用模块化开发,直接在顶层配置这两个,所有的文件都不需要额外配置。
配置文件:
server.port=8083 spring.application.name=eureka-client-1 eureka.client.service-url.defaultZone= http://peer1:8761/eureka/,http://peer2:8761/eureka/
这里配置也很简单,告诉我在哪里就好了。如果有多个service-url,直接增加就行了,如上所示。 java B2B2C Springcloud多租户电子商城系统
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java B2B2C springmvc mybatis多租户电子商城系统-服务网关过滤器
过滤器作用 我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放。 然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果,为了实现对客户端请求的安全校验和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一套用于校验签名和鉴别权限的过滤器或拦截器。 不过,这样的做法并不可取,它会增加日后的系统维护难度,因为同一个系统中的各种校验逻辑很多情况下都是大致相同或类似的,这样的实现方式会使得相似的校验逻辑代码被分散到了各个微服务中去,冗余代码的出现是我们不希望看到的。所以,比较好的做法是将这些校验逻辑剥离出去,构建出一个独立的鉴权服务。在完成了剥离之后,有不少开发者会直接在微服务应用中通过调用鉴权服务来实现校验,但是这样的做法仅仅只是解决了鉴权逻辑的分离,并没有在本质上将这部分不属于业余的逻辑拆分出原有的微服务应用,冗余的拦截器或过滤器依然会存在。 对于这样的问题,更好的做法是通过前置的网关服务来完成...
- 下一篇
为混合云精选的架构是啥样?
来源商业新知网,原标题:为混合云精选的架构是啥样? 现在,云计算资源的交付和使用已经成为全球的 “新常态”,因为有了云平台的支撑,企业可以简化IT服务,创建更多的新业务。 在传统大中型企业开始上云的大背景下,混合云成为未来的主旋律,混合架构让云厂商通过差异化构建竞争力,促成了目前越来越多新型态云服务模式的涌现,即 Everything as a Service。 新技术和云力量正在为客户绘制未来,但在落地中,云服务和功能的多样化比以往任何时候都复杂,对于用户来说,上云的过程充满挑战,既要考虑云端应用与基础架构的配合,还要与不同的软件供应商、硬件供应商和服务商接洽,提供不同的服务接口。 构建云服务的基础设施是硬件和软件的有机结合,共同的要求是强大、高效、灵活,与僵硬的、会导致高昂成本的专用基础设施相比,高度灵活、敏捷、现代化的、软件定义的基础设施更有助于服务创新,产出利润和降低成本。 混合云的未来 每年RightScale都会对企业和中小型企业进行调查,分析云的采用情况,此前,RightScale已经被Flexera收购,今年3月的报告也是该公司被收购后的第一份报告。 与2018年相比,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7