首页 文章 精选 留言 我的

精选列表

搜索[腾讯云双十一抄作业],共10000篇文章
优秀的个人博客,低调大师

Spring Boot 2.5.0 正式发布,迈特云(MateCloud)同步完成升级

一、Spring Boot 2.5.0正式版本发布 二、主要更新内容 支持 Java 16 支持 Gradle 7 支持 Jetty 10 增强 Docker 镜像的构建 更新了Datasource的初始化机制 除了框架功能更新之后,该版本在文档方面也顺应时代潮流,增加了暗黑模式的支持! 文档地址:https://docs.spring.io/spring-boot/docs/current/reference/html/ 三、MateCloud 3.3.8快照版同步更新 3.1 关于MateCloud MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 2.5.0、 Spring Cloud 2020、Spring Cloud Alibaba 2021、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等服务套件,为您的开发保驾护航。 3.2 更新内容 Spring Boot升级至2.5.0 Spring Cloud 2020.2 Spring Cloud Alibaba 2021.1 Nacos 2.0.1 Sentinel 1.8.1 消息队列集成rocketmq和kafka,并提供基于最新的函数式编程的消费者模式。 基于最新的技术栈,搭建的微服务的脚手架,紧跟技术最前沿。 3.3 部分截图 3.4 项目地址 https://gitee.com/matevip/matecloud

优秀的个人博客,低调大师

一文读懂云原生 go-zero 微服务框架

0. go-zero介绍 从去年8月7日github开源以来,已经获得了7700+ star的go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero包含极简的API定义和生成工具goctl,可以根据定义的api文件一键生成Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript代码,并可直接运行。 使用go-zero的好处: 轻松获得支撑千万日活服务的稳定性 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码 微服务治理中间件可无缝集成到其它现有框架使用 极简的API描述,一键生成各端代码 自动校验客户端请求参数合法性 大量微服务治理和并发工具包 1. go-zero框架背景 18年初,晓黑板后端在经过频繁的宕机后,决定从Java+MongoDB的单体架构迁移到微服务架构,经过仔细思考和对比,我们决定: 基于Go语言 高效的性能 简洁的语法 广泛验证的工程效率 极致的部署体验 极低的服务端资源成本 自研微服务框架 有过很多微服务框架自研经验 需要有更快速的问题定位能力 更便捷的增加新特性 2. go-zero框架设计思考 对于微服务框架的设计,我们期望保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,我们就有如下一些准则: 保持简单,第一原则 弹性设计,面向故障编程 工具大于约定和文档 尽可能约束做一件事只有一种方式 高可用 高并发 易扩展 尽可能对业务开发友好,封装复杂度 我们经历不到半年时间,彻底完成了从Java+MongoDB到Golang+MySQL为主的微服务体系迁移,并于18年8月底完全上线,稳定保障了晓黑板后续增长,确保了整个服务的高可用。 3. go-zero项目实现和特点 go-zero是一个集成了各种工程实践的包含web和rpc框架,有如下主要特点: 强大的工具支持,尽可能少的代码编写 极简的接口 完全兼容net/http 支持中间件,方便扩展 高性能 面向故障编程,弹性设计 内建服务发现、智能负载均衡 内建限流、熔断、降载,且自动触发,自动恢复 API参数自动校验 超时级联控制 自动缓存管理,同时支持基于主键和索引的索引 链路跟踪、统计报警等 高并发支撑,稳定保障了晓黑板疫情期间每天的流量洪峰 如下图,我们从多个层面保障了整体服务的高可用: 4. Installation 在项目目录下通过如下命令安装: GO111MODULE=onGOPROXY=https://goproxy.cn/,directgoget-ugithub.com/tal-tech/go-zero 5. Quick Start 安装 goctl 工具goctl读作go control,不要读成go C-T-L。goctl的意思是不要被代码控制,而是要去控制它。其中的go不是指golang。在设计goctl之初,我就希望通过她来解放我们的双手????GO111MODULE=onGOPROXY=https://goproxy.cn/,directgoget-ugithub.com/tal-tech/go-zero/tools/goctl确保 goctl 可执行 快速生成 api 服务goctlapinewgreet cdgreet gomodinit gomodtidy gorungreet.go-fetc/greet-api.yaml默认侦听在 8888 端口(可以在配置文件里修改),可以通过 curl 请求:curl-ihttp://localhost:8888/greet/from/you返回如下:HTTP/1.1200OK Content-Type:application/json Date:Thu,22Oct202014:03:18GMT Content-Length:14 {"message":""}编写业务代码: api 文件定义了服务对外暴露的路由,可参考api 规范 可以在 servicecontext.go 里面传递依赖给 logic,比如 mysql, redis 等 在 api 定义的 get/post/put/delete 等请求对应的 logic 里增加业务处理逻辑 可以根据 api 文件生成前端需要的 Java, TypeScript, Dart, JavaScript 代码 goctlapijava-apigreet.api-dirgreet goctlapidart-apigreet.api-dirgreet ... 6. Benchmark 测试代码见这里 7. 项目地址 github.com/tal-tech/go-zero 欢迎使用 go-zero 并 star 支持我们! 8. 微信交流群 关注『微服务实践』公众号并回复 进群 获取社区群二维码。

优秀的个人博客,低调大师

每日一博 | 使用码云 gitee-go 做 npm publish

gitee-go 其实去年已经上线了,但当时太忙,没时间折腾。 经过一再折腾,终于搞通了。操作步骤按照以下流程: Step-1:在仓库的 DevOps 进入 Gitee Go 的配置页面,点击新建流水线(以下 2 图) Step-2:新建流水线的初始化配置界面,操作如下图。 该配置文件创建保存后,会在你的仓库目录下创建对应的文件,如:.workflow/npm-publish.yml 文件。建议可在自己本地修改流水线配置文件,毕竟有代码高亮,格式也更可控。 Step-3:本地优化 npm-publish.yml 配置文件 # ======================================================== # npm 构建参考流水线样例 # 功能:输出当前 npm 构建环境的环境信息 # ======================================================== name: npm-publish # 定义一个唯一 ID 标识为 gitee-go-npm-example,名称为 “npm-流水线示例” 的流水线 displayName: 'npm-publish' triggers: # 流水线触发器配置 push: # 设置 master 分支 在产生代码 push 时精确触发(PRECISE)构建 - matchType: PRECISE branch: master commitMessage: 'build:' # 通过匹配当前提交的 CommitMessage 决定是否执行流水线 stages: # 构建阶段配置 - stage: # 定义一个 ID 标识为 npm-build-stage ,名为 “npm Stage” 的阶段 name: npm-build-stage displayName: 'npm publish stage' failFast: true # 允许快速失败,即当 Stage 中有任务失败时,直接结束整个 Stage steps: # 构建步骤配置 - step: npmbuild@1 # 采用 npm 编译环境 name: npm-test # 定义一个 ID 标识为 npm-build ,名为 “npm Step” 的阶段 displayName: 'npm test' inputs: # 构建输入参数设定 nodeVersion: 14.15 # 指定 node 环境版本为 10.1 goals: | node -v && npm -v npm install cat package.json npm run eslint-check npm run test - step: npmbuild@1 # 采用 npm 编译环境 name: npm-build # 定义一个 ID 标识为 npm-build ,名为 “npm Step” 的阶段 dependsOn: npm-test # 依赖于上一个步骤 displayName: 'npm publish' inputs: # 构建输入参数设定 nodeVersion: 14.15 # 指定 node 环境版本为 10.1 goals: | # 先用 taobao 的 install,再切换官方源 publish 试试 npm install npm run build npm install -g @jsdevtools/npm-publish npm-publish --token=$NPM_TOKEN ./package.json 具体的说明,可以参考这里:Gitee Go 快速入门和流水线配置(YAML)格式说明。这里补充说明一下这个配置文件的关键信息: commitMessage 为匹配 git commit 提交时的注释信息,这里我用了匹配 build: 这个前缀 stage 这里配置了两个 steps,第一个 step执行测试,第二个 step 执行 publish Gitee Go 针对国内环境,默认使用的是 taobao 的仓库,所以要做 npm publish 需要手动修改仓库,或者用 @jsdevtools/npm-publish 这个库来辅助发布。经过摸索,这个库更易用,推荐使用。 $NPM_TOKEN 这个变量,是配置在仓库的环境变量,推荐阅读:环境变量管理。补充说明,新建变量的时候,记得勾选 密钥模式 ,勾选该项后,这个变量在 Gitee Go 运行阶段,会自动掩饰为 ****** ,防止关键信息外泄。 被掩藏了的 $NPM_TOKEN 的截图说明: Step-4:git 提交前,记得检查 package.json 中的 version 字段,加版本号。然后提交的时候,填写注释如:build: 1.0.0 ,这样就会触发 npm-publish.yml 的 commitMessage。 之后,进入仓库的 Gitee Go 界面,即可看到触发了一个新的流水线的记录: 点击【查看】,可进入该流水线的详情记录: 点击 【构建详情】,可查看构建的过程,注意,未完成的 step ,无法获得查看执行的详情: 补充说明: 经过摸索,Stage(流水线)的 Step(环节)的失败判定,来自于 node.js 执行时的 process.stderr 的写入,如 eslint、单元测试、npm指令执行发生错误的时候,都会抛出错误,写入 process.stderr,即会触发 Step 的执行失败的判定。 通过指定 dependsOn 字段,可以使 Step 依赖于前一个 Step 无失败才往后执行,如果不指定这个字段所有 Step 会同时执行。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册