微服务框架

简介: 框架的名称有nacos、openFeign、gateWay

一.Nacos配置管理

1.导入依赖:

<!--nacos配置管理依赖-->

<dependency>

 <groupId>com.alibaba.cloud</groupId>

 <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

</dependency>

2.创建一个bootstrap.yml让服务启动的时候直接加载到本地,它的优先级最高

3.添加配置类:

spring:

application:

        name: userservice # 服务名称

     profiles:

  active: dev # 当前使用dev环境

  cloud:

    nacos:

      server-addr: localhost:8848

      config:

        file-extension: yaml # 文件后缀名

4.启动Nacos,创建配置文件

5.定义一个xxxProperties类放到config包中,加入@ConfigurationProperties(prefix = "pattern"),自动刷新,@Component注解:

6.编写要注入的属性

二.配置自动刷新

第一种:在controller加@RefreshScope注解

第二种:在@ConfigurationProperties(prefix = "pattern")

三.多环境配置共享

1.创建一个配置文件不带dev的,如userservice.yaml

2.执行的优先级:

四.Nacos集群搭建

1.用nginx来做负载均衡

2.DNS做域名解析,写入网站名称会解析成地址+端口

3.SLB是负载均衡

4.进入nocos的conf目录下,把cluster.conf.example -->变cluster.conf。通过命令窗口运行ipconfig获取IP地址,换为自己的地址。

5.进application.properties,把数据连接给放开,把端口改为在cluster.conf的任意一个地址

6.有几个地址就复制几个nacos,然后逐个启动

7.最后访问nacos看追加的是哪个地址,替换就得了

8.用ngixn做反向代理,添加配置文件:

upstream nacos-cluster {

server 自己地址:8845;

server 127.0.0.1:8846;

server 127.0.0.1:8847;

}

server {

 listen       80;

 server_name  localhost;

 location /nacos {

   proxy_pass http://nacos-cluster;

 }

}

9.把yaml里nacos的端口改为nginx的端口,如何把端口指向一个端口而已就会导致有一个集群宕机就不会运行了

五.OpenFeign(主要是代替RestTemplate来调用个个服务的)

1.导入依赖

<dependency>

   <groupId>org.springframework.cloud</groupId>

   <artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

2.在启动类注入@EnableFeignClients一个注解

3.创建一个client包,定义一个UserClient接口,里面写着要调用其他服务controller的接口

4.在接口上加注解@FeignClient("userservice"),userservice是服务名

5.然后根据它自带的id查询方法

六.配置feign日志

1.第一种直接使用配置文件(局部)

2.第二种使用配置类(全局):

3.在启动类加@EnableFeignClients(defaultConfiguration = FeignClientsConfiguration.class)

七.feign的性能优化

1.使用Apache HttpClient代替默认的URLConnection连接池(面试题)

2.引入feign-httpclient依赖

3.配置文件:

八.feign的最佳实践

1.先创建一个api模块,把clent都移到模块中,然后哪个模块想调用直接继承该模块就行

2.注意:换了网络就得换ip地址,如果启动报com.alibaba.nacos.api.exception.NacosException: server is DOWN now, please try again later!错,就得把nacos里的data/protocol删除,重新启动

3.要在消费方的启动类加@EnableFeignClients(basePackages = "cn.itcast.feign.client")注解

九.GateWay网关服务

1.创建一个模块,也要放在注册中心,易于去发现别的服务

2.导入网关依赖和nacos服务与注册依赖

3.配置文件

十.路由断言(类似于if判断,为false就会检测出来,为true就放行)

1.配置文件

2.最好是放到nacos里

十一.网关过滤器

1.需要在网关配置里添加过滤器,通过请求头(给单独的服务进行拦截)

2.对所有的请求value为185都放行

3.定义全局过滤器类实现GlobalFilter接口

4.注入到springbean容器中@Component

5.获取请求头、判断请求头、结果处理

相关文章
|
8天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
46 3
|
5天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
1月前
|
Dubbo Java 应用服务中间件
微服务框架Dubbo环境部署实战
微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。
160 17
微服务框架Dubbo环境部署实战
|
1月前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
44 5
|
1月前
|
存储 Java Maven
从零到微服务专家:用Micronaut框架轻松构建未来架构
【9月更文挑战第5天】在现代软件开发中,微服务架构因提升应用的可伸缩性和灵活性而广受欢迎。Micronaut 是一个轻量级的 Java 框架,适合构建微服务。本文介绍如何从零开始使用 Micronaut 搭建微服务架构,包括设置开发环境、创建 Maven 项目并添加 Micronaut 依赖,编写主类启动应用,以及添加控制器处理 HTTP 请求。通过示例代码展示如何实现简单的 “Hello, World!” 功能,并介绍如何通过添加更多依赖来扩展应用功能,如数据访问、验证和安全性等。Micronaut 的强大和灵活性使你能够快速构建复杂的微服务系统。
77 5
|
1月前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
62 2
|
1月前
|
Cloud Native 安全 Java
Micronaut对决Spring Boot:谁是微服务领域的王者?揭秘两者优劣,选对框架至关重要!
【9月更文挑战第5天】近年来,微服务架构备受关注,Micronaut和Spring Boot成为热门选择。Micronaut由OCI开发,基于注解的依赖注入,内置多种特性,轻量级且启动迅速;Spring Boot则简化了Spring应用开发,拥有丰富的生态支持。选择框架需考虑项目需求、团队经验、性能要求及社区支持等因素。希望本文能帮助您选择合适的微服务框架,助力您的软件开发项目取得成功!
119 2
|
2月前
|
Cloud Native JavaScript API
一文读懂云原生 go-zero 微服务框架
一文读懂云原生 go-zero 微服务框架
|
4月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
212 60
|
2月前
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo