从零搭建 Spring Cloud 服务

从零搭建SpringCloud! 搭建JDK17、Spring Boot3.4、以及Spring Cloud2024.0.0版本的Springcloud 阅读详情

从零搭建 Spring Cloud 服务(超级详细)

1.什么是SpringCloud?

SpringCloud官网:https://spring.io/projects/spring-cloud(个人建议是用谷歌浏览器访问官网打开中文翻译粗略把官网读一遍)

让一个超大的服务逻辑,解耦合为一个个小服务,均匀的分布在各自的服务器中。微服务就微在这。每个教研组就是一个微服务集群。他们提供同样的服务,而注册中心Eureka就是这个存放这个教研组老师名单的地方,学生们想先访问这个注册中心获取教师名单,然后根据相应的负载方法去访问各自老师。不至于让集群中某一老师累死也不至于让某一老师闲死。

而Zuul网关呢,就是学校的门卫,某些学生来学校找谁,它负责指引(路由),并且通过一些非常简单的配置,达到阻拦一些人进入(身份验证),或者控制想学数学的人只能去数学教研组,不能去核能教研组学怎么造原子弹(权限验证)。

那Hystrix熔断器呢,可以把它当成学校的志愿者,当一个教研组集体罢课后,学生找不到老师了,这些志愿者及时的告诉来访问的学生,相应的结果,异常信息等,免得大量的学生在学校等待,这些志愿者赶快把这些等待的学生梳理出去,学生一直在学校等待,那其他需要学生的学校,也会等待学生,最后造成大面积的学校瘫痪。这里学生我们看成一个个请求。熔断器就是把某事故的蔓延即使熔断了。

当然这些组件也是微服务需要注册到Eureka注册中心

那 Spring Cloud 就可以看成是这个学校了。众多上面提到的组件相当于都是这个学校的各职能部门。

ps: 博主基于Maven+idea搭建。 另外SpringCloud需要基于springboot搭建。

2.1 引入Spring Boot相关依赖 这里的springboot用的是1.5.7版本

引入Spring Cloud相关依赖 这里为 Edgware.SR5

2.1 工程初始化配置

在Idea中创建工程:File -> New ->Project

img

点击 Empty Project -> Next

img

项目命名 -> 项目位置

img

选择模组 modules ->next

img

进入新的窗口后,开始配置Maven,打开设置 setting

img

img

因为我之前做过配置,因此只需要改变框1的路径,如第一次配置需要自己找到你maven放置的位置,以及settings.xml****,repository的位置,实在不会的百度 maven集成idea

img

3个框选择完毕后点击 ok

接下来新建module

img

这里可能会出现加载不出archetype list的问题

img

用了网上的所有解决办法花了3个小时解决都没用,重启之后竟然可以了····你敢信?????小时候网吧网管的至理名言都忘了!!重启一下嘛!!

出来之后 选择quickstart ->下一步

img

名字自己想 想好后,复制一下你想好的 ArtifactId点击Next,groupId为组织名 也是自己想一个,一般为公司网址反写。

img

粘贴后下一步

img

img

提供注册服务的服务器pom.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>   <groupId>com.yun</groupId>  <artifactId>springcloud-eureka-server</artifactId>  <version>1.0-SNAPSHOT</version>   <name>springcloud-eureka-server</name>  <!-- FIXME change it to the project's website -->  <url>http://www.example.com</url>   <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <maven.compiler.source>1.7</maven.compiler.source>    <maven.compiler.target>1.7</maven.compiler.target>  </properties>   <!--引入springboot-parent父项目-->  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>1.5.7.RELEASE</version>  </parent>   <dependencies>    <!--引入springcloud的euekea server依赖-->    <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>    </dependency>   </dependencies>    <!--指定下载源和使用springcloud的版本-->  <dependencyManagement>    <dependencies>      <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-dependencies</artifactId>        <version>Edgware.SR5</version>        <type>pom</type>        <scope>import</scope>      </dependency>    </dependencies>  </dependencyManagement></project>

点击Import Changes

img

等待右下角加载springcloud的依赖

img

2.2 Springboot的搭建 以及提供注册服务 的 服务配置

创建resources文件夹

img

并设置作为资源根目录,之后文件变成这样

img

之后文件夹变成有黄色的横杠

img

在resources下新建文件,文件名为application.yml (对是yml 不是xml ,博主第一次学习时,还以为是其他博主打错了,踩了一个小坑)

img

配置yml,注意:如果只配置前两行端口号信息会报错

img

server:  port: 8700 # 端口自己决定  # 指定当前eureka客户端的注册地址,也就是eureka服务的提供方,当前配置的服务的注册服务方eureka:  client:    service-url:      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka    register-with-eureka: false #自身 不在向eureka注册    fetch-registry: false #启动时禁用client的注册  instance:    hostname: localhost #指定应用名称spring:  application:    name: eureka-server

知识补充:

img

开发 spring boot 的入口类 EurekaServerApplication.java

img

EurekaServerApplication.java

package com.yun; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication@EnableEurekaServer //当前使用eureka的serverpublic class EurekaServerApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaServerApplication.class,args);    }}

右键运行当前类:

img

运行成功console画面

img

尝试进入eureka管理界面 端口号为 yml里配置的(端口号自己设置 需要大于公用和保留的端口号)1024~65535

一般我喜欢设置为 8700到8800之间

如下 管理界面已经可以登录了

img

2.3 客户端client 提供真正服务的角色的配置, 它提供服务 在 服务注册方server (注册中心)进行注册

同样新建module,选择quickstart点击下一步

img

两个位置 置空

img

取名 下一步

img

注意这里要在根目录springcloud 下创建模组,content root 会默认在之前的模组之下创建模组 这样创建模组会出现问题并报错

img

推荐这种配置方法 在content root下springcloud后改名字 如下图配置点下一步,红框处一般默认为上一个模组的文件目录名,需要改为你的模组名

img

成功后为并列状态,如不为并列或报错请重新配置

img

配置servicesupport的pom,与server的pom配置相同,只需要把第一个pom的1的方框处server改为client

和第一个微服务同理 我们需要配置入口类 pom.xml application.yml,因为是服务提供者,这里还需编写服务类controller

application.yml

server:  port: 8701 # 服务提供方 # 指定当前eureka客户端的注册地址,eureka:  client:    service-url:      defaultZone: http://${eureka.instance.hostname}:8700/eureka  instance:    hostname: localhost #当前服务名称spring:  application:    name: eureka-service

pom.xml:

img

编写所提供的 服务controller:

@RestController@RequestMapping("/Hello")public class Controller {    @RequestMapping("/World")    public String helloWorld(String s){        System.out.println("传入的值为:"+s);        return "传入的值为:"+s;    }}

入口类 并运行此微服务:

@SpringBootApplication@EnableDiscoveryClient//代表自己是一个服务提供方public class EurekaServiceApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaServiceApplication.class,args);    }}

右键入口类名点击 run(当然开启此服务时需要先开启server服务 就是我们第一个编写的微服务)

img

此时再进入服务注册的页面 http://localhost:8700/

可以看见服务提供者已被注册进 服务注册者

img

在直接访问一下服务提供者的 网络位置http://localhost:8701/Hello/World?s=小沛

我们已经看见 可以访问了,证明此微服务可用。

img

但是我们一般不直接调用所需的微服务,而是经过提供注册服务的服务器server,获取所需的服务提供者列表(为一个列表,此列表包含了能提供相应服务的服务器),他们也许是个集群,因此server会返回一个 ip+端口号的表,服务消费者通过相应算法访问这表上的不同服务器,这些服务器提供的是相同的服务,这种在服务消费者一方挑选服务器为自己服务的方式是一种客户端的负载均衡。

目前博主所知的有 轮询和随机两种方式 访问这些服务器,轮询就是循环的意思,假如有3台服务器,访问方式就是1,2,3,1,2,3,1,2,3····,随机就是随机,回想一下random方法,一种无规律的方式。这两种方式都是为了,访问每个服务器的可能性尽量的相同。还有权重负载这种算法,意思就是 根据服务器负载能力的分配相应的服务。能力大的干得多。能力小的干得少。

2.4 服务的调用方式

第一种调用方式:restTemplate+ribbon

imgimg

第二种调用方式:feign

img

2.4.1 restTemplate+ribbon

ribbon是一种负载均衡的客户端,它是什么呢?请详读https://www.jianshu.com/p/1bd66db5dc46

可以看见其中的一段如下:

而客户端负载均衡和服务端负载均衡最大的不同点在于上面所提到服务清单所存储的位置。在客户端负载均衡中,所有客户端节点都维护着自己要访问的服务端清单,而这些服务端端清单来自于服务注册中心,比如上一章我们介绍的Eureka服务端。

同服务端负载均衡的架构类似,在客户端负载均衡中也需要心跳去维护服务端清单的健康性,默认会创建针对各个服务治理框架的Ribbon自动化整合配置,比如Eureka中的org.springframework.cloud.netflix.ribbon.eureka.RibbonEurekaAutoConfiguration,Consul中的org.springframework.cloud.consul.discovery.RibbonConsulAutoConfiguration。在实际使用的时候,我们可以通过查看这两个类的实现,以找到它们的配置详情来帮助我们更好地使用它。

接下来我们来搭建基于ribbon的客户端,他用于消费服务。

同理先搭建springboot的环境

与之前搭建servicesupport不同的是:

第一步:现在pom中需要在dependencies中添加ribbon依赖

<dependency>       <groupId>org.springframework.cloud</groupId>       <artifactId>spring-cloud-starter-ribbon</artifactId></dependency>

第二步:yml如下配置:

server:  port: 8702 # 服务消费方 # 指定当前eureka客户端的注册地址,eureka:  client:    service-url:      defaultZone: http://${eureka.instance.hostname}:8700/eureka  instance:    hostname: localhost #当前服务名称spring:  application:    name: eureka-consumer

服务的消费方依旧需要在注册方8700端口去注册。配置当前服务消费方的端口8072,名字为eureka-consumer

第三步:依旧需要启动类,因为它是一个springboot的架构:

@SpringBootApplication@EnableDiscoveryClient //当前使用eureka的serverpublic class EurekaConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaConsumerApplication.class,args);    }}

img

如上图:

我们需要一个controller类来编写ribbon的代码。

@RestController@RequestMapping("/Hello")class ConsumerController {    @Autowired    private LoadBalancerClient loadBalancerClient;    @Autowired    private RestTemplate restTemplate;    @RequestMapping("/Consumer")    public String helloWorld(String s){        System.out.println("传入的值为:"+s);        //第一种调用方式        //String forObject = new RestTemplate().getForObject("http://localhost:8071/Hello/World?s=" + s, String.class);         //第二种调用方式        //根据服务名 获取服务列表 根据算法选取某个服务 并访问某个服务的网络位置。        //ServiceInstance serviceInstance = loadBalancerClient.choose("EUREKA-SERVICE");        //String forObject = new RestTemplate().getForObject("http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/Hello/World?s="+s,String.class);         //第三种调用方式 需要restTemplate注入的方式        String forObject = restTemplate.getForObject("http://EUREKA-SERVICE/Hello/World?s=" + s, String.class);        return forObject;    }}

我们常用第三种调用方式。

第一种是直接调用:不经过注册中心那服务列表,直接访问的servicesupport

第二种:是根据服务名选择调用,如上图需要做如下注入

@Autowired
private LoadBalancerClient loadBalancerClient;

如上图代码中第二种调用方法的代码所示。

用服务名去注册中心获取服务列表,当前客户端底层会做随机算法的选取获得服务并访问。

第三种需要一个@Bean的注解自动注入并直接调用restTemplate对象调用服务。底层调用模式与第二种调用方式一样。如下:

@Configurationpublic class Beans {    //管理简单对象    @Bean    @LoadBalanced    public RestTemplate getRestTemplate(){        return new RestTemplate();    }}

@Bean注解告诉工厂,这个方法需要自动注入。

@LoadBalanced,表示需要做负载匀衡。

然后如controller中一样注入一下restTemplate,并且使用他,区别是可以直接使用服务名访问了

String forObject =

restTemplate.getForObject(“http://EUREKA-SERVICE/Hello/World?s=” + s, String.class);

开始测试:

1.运行server的启动类:

img

2.运行servicesupport的启动类:

img

3.运行serviceconsume的启动类:

img

浏览器访问:

img

8072为服务消费方的端口

访问方法解析:

  • 访问服务消费方@RequestMapping指定的路径及消费方的端口来访问消费方的controller
  • controller根据服务名去server方获取获取服务列表,获取服务列表后根据随机的模式负载匀衡后去选择服务地址去访问servicesupport:如下图

img

2.5 Eureka server的高可用配置

点击下图配置

img

img

接下来配置三台01,02,03的虚拟机参数

01:8699

img

02:8698

img

03:8697

img

之后点ok保存,可看见多出三个启动项

img

接下来分别改注册端口号,defaultZone分别启动三个启动项

打开server的yml配置,删掉前两行端口号配置(图中有错,请把instance 和hostname那两行删掉)

img

配置好yml后点击启动

img

同理,我们再次改动端口号为8699和8697后,把启动项改为02,之后启动(图中有错,请把instance 和hostname那两行删掉)

img

同理把yml端口改为8699 和 8698后,把启动项改为03,之后启动(图中有错,请把instance 和hostname那两行删掉)

img

启动后分别访问三个01,02,03端口,已经可以看见可以访问了。

img

img

img

打开服务提供方的yml配置如下,把端口号改为三个中其中的一个。

img

启动服务提供方之后,再次访问三个01,02,03我们会发现

重点:即使服务提供方只注册了一个端口号8699,但是另外两个端口号,也能感知到服务提供方8701的存在了。如下图:

img

img

img

接下来像服务消费方中添加服务注册者的端口号,这样在server挂掉任何一个的时候,都能有其他的server也能获取服务列表

img

访问以下服务消费方,发现可以通过消费方调用server服务列表并且访问service了

img

我么随便关闭其中两个server的副本,重启serviceconsume,再进行访问。必须重启serviceconsume才能清空缓存,清掉consume里面有的服务列表。

img

上图发现即使关闭两台server后依旧可以访问,如下图,依旧从server中获取了服务列表,从中也能看见之后不用再获取服务列表了。

img

但是当我们关掉所有server后。访问还是没问题,因为缓存了服务列表。

img

但是让我们来重启一下serviceconsume,再访问就不行了。

img

93)]

我么随便关闭其中两个server的副本,重启serviceconsume,再进行访问。必须重启serviceconsume才能清空缓存,清掉consume里面有的服务列表。

[外链图片转存中…(img-KO0k4k7H-1607174787594)]

上图发现即使关闭两台server后依旧可以访问,如下图,依旧从server中获取了服务列表,从中也能看见之后不用再获取服务列表了。

[外链图片转存中…(img-cfllv5tq-1607174787594)]

但是当我们关掉所有server后。访问还是没问题,因为缓存了服务列表。

[外链图片转存中…(img-fzbSf5dz-1607174787595)]

但是让我们来重启一下serviceconsume,再访问就不行了。

[外链图片转存中…(img-ivpDa6JC-1607174787596)]

综上我们就完成了springcloud中server的高可用配置

【Java学习路线之JavaWeb】Spring Cloud教程(非常详细) 文章目录读者阅读条件微服务是什么微服务,我们可以从字面上去理解,即“微小的服务”,下面我们从“服务”和“微小”两个方面进行介绍。微服务架构微服务架构 vs 单体架构微服务的特点微服务框架Java 微服务框架Go 语言微服务框Phyton 微服务框架NodeJS微服务框架Spring Cloud是什么Spring Cloud 常用组件Spring Boot 和 Spring Cloud 的区别与联系1. Spring Boot 和 Spring Cloud 分工不同2. Spring Cloud 是基于 Sp 阅读详情

相关推荐

Spring Cloud全面详解 - 从入门到精通

Spring Cloud是构建分布式系统的工具集,它基于Spring Boot,提供了一系列解决分布式系统常见问题的框架。Spring Cloud专注于为典型的分布式系统用例提供良好的开箱即用体验,如配置管理、服务发现、熔断器、智能路由、微代理、控制总线等。

weixin_51040479的博客 6041

SpringCloud技术栈微服务架构天猫商城企业级开发实战(附源码)

天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的核心组成部分之一,采用SSM框架的天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。本课程是一门专业的Java微服架构开发实战课程,主要讲解了当下流行的SpringBoot框架、SpringCloud架构以及与第三方技术整合开发实战内容。通过本课程的学习,能够理解并掌握SpringBoot的基础知识,同时能够掌握SpringBoot与常用的第三方技术整合实现实际开发中的业务需求,包括实现Web开发、数据访问、缓存管理、安全管理、消息服务、任务管理等;了解并掌握SpringCloud微服务架构的基础知识及相关组件的应用,掌握微服务架构在企业级开发的实践,建立起微服架构思想。项目技术栈:采用SpringBoot简化商城系统的初始搭建以及开发过程采用SpringMVC+Spring+IBatis完成项目的整合采用Mysql作为数据库存储,Druid配置数据库连接池采用SpringCloud+Netflix 微服务技术栈的实战开发使用Redis完成缓存的数据存储,搭建Redis搭建主从、哨兵、集群应用,保证Redis的高可用使用ElasticSearch全文检索系统进行商品数据搜索,使用ElasticSearch搭建搜索服务的高可用使用Ngnix实现页面动静分离与负载均衡的配置采用FastDFS文件储存系统文件存储,完成广告图片、商品图片的上传和存储系统使用采用CAS+shiro单点登录系统实现用户认证使用ECharts根据后台查询数据生成图表使用POI实现了商城盈利状况的Excel表格导出。商品的详情页使用Thymeleaf完成页面静态化,减少页面数据展示延迟项目中使用SpringBoot下的Aop + 自定义注解完成用户行为记录,日志采集后台管理系统使用Shiro实现登录验证和权限管理(超级管理员、管理员、产品编辑员)项目整合微信完成订单的支付使用Redission完成分布式锁,生成订单的编号使用SpringCloud Alibaba Seat完成下订单模块的分布式事务(新增订单表,库存减少,库存超卖设计)使用RabbitMQ 做消息队列,完成订单未支付自动取消和模块直接的解耦合使用Quartz任务调度,完成缓存的定时刷新,保证缓存的一致性使用本地消息表机制完成消息然队列RabbitMQ消息可靠性传输订单支付模块使用微信扫码支付,并设置订单超时自动取消通过Jquery实现前端校验,通过基于Hibernate的Valida注解实现后端的校验功能使用Base64编码对Json数据传输进行编码和解码项目使用RESTful设计风格实现资源的访问,实现前后端分离项目使用聚合数据第三方短信平台完成用户的登陆功能项目使用SpringBoot整合JavaMail完成邮件的发送项目使用SpringBoot整合Swagger2生成接口文档使用PostMan完成接口的测试项目的测试:SpringTest、dbunit、EasyMock使用Docker 进行应用的自动化打包和发布、自动化测试和持续集成、部署和调整其他应用使用 PowerDesigner,完成数据库的建模项目使用禅道进行BUG管理环境采用Maven实施多模块项目构建,采用Git进行项目版本管理 架构解读:  项目部分截图:              讲义部分截图:          

从零搭建阿里巴巴微服务五件套:完整的Spring Cloud Alibaba实战项目

作为一名Java后端开发者,我将带你一步步构建一个完整的微服务架构项目,深入学习阿里巴巴微服务五件套的核心技术。

weixin_43580435的博客 1043

从零搭建SpringCloud服务(史上最详细)

1.什么是SpringCloud? 我就不bb了,贴上比较优秀的博客 https://www.cnblogs.com/lexiaofei/p/6808152.html 自己理解就是,一个服务器集群中,每个服务器固定的完成某些任务,任务成果的需求者想获取这些成果时通过主机名+端口号获取,对了它当然是基于http协议。每台服务器的分工更加明细。还能使用一个集群来实现某一服务,这样也能保证某一服务不...

Anakki的博客 7万+

从零搭建高性能微服务架构:Spring Cloud Alibaba实战指南前言

本文介绍了基于SpringCloudAlibaba搭建微服务架构的完整方案,对比分析了SpringCloudAlibaba相比Netflix的技术优势,包括Nacos注册中心、Sentinel熔断降级等核心组件。详细讲解了从环境准备、基础搭建到核心服务(网关、用户、订单服务)的实现过程,涵盖服务注册发现、配置管理、分布式事务等关键功能。文章还提供了性能优化建议、监控运维方案以及容器化部署指南,并展望了ServiceMesh、云原生等未来技术趋势。该架构具备高可用、高性能、易扩展等特性,为构建企业级分布式系统

Creaaazy的博客 1248

微服务spring cloud项目从零搭建(一)

@TOC微服务spring cloud项目从零搭建 一、前言 在之前的系统架构的演变中,已经简要介绍了系统架构的的发展已及各个系统架构的优缺点,下面从零开始详细介绍一下以微服务spring cloud架构的项目搭建。 二、项目搭建 1.项目的搭建环境 编辑器:spring tool suit(STS) JDK:1.8 项目构建工具:maven 2.开始搭建 1.新建maven项目 new...

zuoanlang1314的博客 686

从零搭建 Spring Cloud 微服务项目:注册中心 + 网关 + 配置中心全流程

本文面向具备 Java 基础与 Spring Boot 实战经验的开发者,以 Spring Cloud Alibaba 生态为核心,从零搭建包含注册中心、API 网关、配置中心的微服务项目,全程附带可运行代码与实操说明,读者可边读边动手实现。

lbbxmx111的博客 2836

深入理解微服务架构:从零搭建 Spring Cloud 微服务项目

通过本篇文章,你已掌握微服务的基本架构和核心技术,下一步可以深入研究。创建一个 Spring Boot 项目,添加。请求会自动转发到 order-service。等关键技术,助你掌握微服务的核心思想!:服务间解耦,某个服务崩溃不会影响整个系统。,每个服务专注于某个业务功能,并通过。随着互联网业务的不断增长,传统的。会自动将请求均匀分配到多个实例。,将一个应用拆分为多个。:不同微服务可以使用。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 2042

Spring Cloud微服务实战:从零搭建迷你电商平台

在传统的单体架构中,一个应用的所有功能模块(如用户管理、商品展示、订单处理等)都打包在一个单一的代码库中,部署和扩展时往往需要整体进行。这种架构在项目初期开发效率较高,但随着业务复杂度的提升,单体应用会面临代码臃肿、维护困难、技术栈僵化等问题。微服务架构应运而生,它将一个大型应用拆分为一组小型、松耦合的服务,每个服务专注于一个特定的业务功能,并可以独立开发、部署和扩展。微服务的核心思想是"分而治之"。例如,在电商平台中,用户服务负责注册和登录,商品服务管理商品信息,订单服务处理下单流程,支付服务完成交易。

zuiyuelong的博客 1295

LangChain学习及应用(超详细)

Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。

weixin_39764056的博客 4257

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5058

Spring Cloud Alibaba小白教程:从零搭建第一个微服务

它基于Spring Cloud标准,整合了阿里云的微服务组件,让搭建分布式系统变得简单多了。今天我就把学习过程中整理的入门笔记分享给大家,手把手教你创建第一个包含服务提供者和消费者的微服务应用。对于想学习Spring Cloud Alibaba的开发者,我建议可以先在InsCode上创建简单示例,验证通过后再在本地环境深入开发,这样学习曲线会平缓很多。它的在线编辑器可以直接运行Spring Boot应用,还能一键部署微服务,省去了本地搭建环境的麻烦。- 内置了常用依赖,创建项目很快速。

JetRaven12的博客 313

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5680

Spring Cloud Alibaba小白入门:从零搭建第一个微服务

所有服务都注册到Nacos服务发现中心,形成完整的服务调用链。最近在学习微服务架构,发现Spring Cloud Alibaba是当前企业级开发的热门选择。作为新手,记录下我的第一个微服务项目搭建过程,希望能帮到同样入门的朋友。对于初学者来说,这种开箱即用的体验确实降低了学习门槛。建议刚开始接触微服务的同学从这种最小化示例入手,逐步理解服务注册、发现、调用的核心机制。的在线编辑器可以直接运行和调试,不需要配置本地Java环境。上完成,省去了本地环境配置的麻烦。实现聚合接口处理业务逻辑。

ThunderstormLynx23的博客 500

OpenCV安装配置教程VS2022(超级顺利)

博主最开始没打算写这篇博客,只是想简单的在网上找一下最新版的OpenCV的安装配置教程,适用于VS2022的,但是我搜了一早上,也没搜到一个能让我成功安装配置的,看了很多很多文章,根本就没有几篇有用的。所以没办法了,只能自己研究了,于是就整理了这篇博客,希望能帮到和我一样的人,这就是博主一直信奉的利他精神!

weixin_47367099的博客 5万+

海外购物商城源码 带即时通讯IM源码

在海外购物商城中,即时通讯IM源码可以为用户提供更便捷、高效的沟通方式,帮助解决跨国交易中的语言和文化差异问题。总之,即时通讯IM源码在海外购物商城中扮演着重要的角色,可以为用户提供更方便、高效的沟通方式,解决跨国交易中的语言和文化差异问题。(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)实时翻译:即时通讯IM源码提供实时翻译功能,能够快速准确地翻译不同语言之间的文字、语音、视频等信息,帮助用户克服语言障碍。

很酷的站长的博客 259

从零搭建 Spring Cloud 服务(超级详细)

点击上方Java后端,选择设为星标优质文章,及时送达作者:Anakki;链接:blog.youkuaiyun.com/qq_29519041/article/details/85238270这...

公众号:Java后端 1599

基于 Mask R-CNN 的实例分割:从零开始构建一个强大的分割模型

在本文中,我们将介绍如何使用 Mask R-CNN(Region-based Convolutional Networks with Masks)实现实例分割。实例分割是计算机视觉中的一种任务,旨在识别并分割图像中的各个对象。我们将讨论如何准备数据集、配置 Mask R-CNN 模型并在自定义数据集上进行训练。

斌擎科技 1243

Spring Cloud 微服务实战(一):还在硬编码服务地址?Nacos 注册中心从零搭建

本文从单体架构到微服务架构的演变讲起,介绍 Spring Cloud 生态核心组件,并基于 Spring Boot 2.6.11 + Spring Cloud 2021.0.4 + Spring Cloud Alibaba 2021.0.4.0,手把手搭建 Nacos 2.5.1 注册中心,实现订单、库存服务的注册发现、按服务名调用与负载均衡,附命名空间与分组隔离实战

weixin_42303792的博客 387

gem5-gpu教程01 部署(实测可跑通)

这将GPGPU-Sim更新为与gem5-gpu兼容的最新版本。此版本是已知可用于gem5 gpu的最新版本。

qq_20388971的博客 1404

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2313

Spring Cloud Alibaba本地部署实践指南:从零搭建微服务演示环境

Spring Cloud Alibaba本地部署实践指南:从零搭建微服务演示环境 【免费下载链接】spring-cloud-alibaba Spring Cloud Alibaba provides a one-stop solution for application development for the distr...

gitblog_00548的博客 445

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

从零搭建spring cloud微服务四 · 公共模块

已停止更新,源码及文档请进入https://github.com/huaPeiLiang/spring-cloud-start 一、回顾 上一篇文章:从零搭建spring cloud微服务三 · 服务提供者与服务消费者Rest和feign调用 通过上一篇文章解决了微服务之间的调用问题。这一篇搭建公共模块,在公共模块里可以定义共用的实体类,方法等。 文章结尾会有下期预览及下一篇文章链接,也可...

HPLJAVA的博客 5827

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: CentOS配置安装等通用知识
下一篇: 下载及安装RocketMQ
我是陈胖丁
博客等级 码龄11年 207粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值