自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(354)
  • 资源 (7)
  • 收藏
  • 关注

原创 Spring Cloud项目开发中遇到的问题

Spring Cloud微服务1、某个微服务是供内部调用还是前端调用?如果是内部调用,直接引用jar即可;如果是前端调用,需要通过api-ws进行访问。(doctor服务,hospital服务)上游服务和下游服务之分,只有上游服务才能暴露给前端。微服务层级之分。接口单一职责原则:在api-ws这一层合并接口, 把所有的数据都封装到一个接口里面。2、Nginx与Eureka Serv...

2020-04-01 15:59:04 875

原创 Jedis的使用

redis的使用:1)redis相比mysql,速度比较快,用户体验好。2)不经常变化的数据,可以使用redis存储,比如公司介绍等。3)在mysql中操作后,存储到数据库中;下次在获取数据的时候,先从redis中查询,如果有就直接获取,如果没有在查询数据库。4)过期时间设置:过期后,就会删除此条数据;然后数据只能从mysql中查询。redis配置文件:redis.con...

2017-11-30 15:06:45 34267 1

原创 AI Agent开发

1,Spring AI Alibaba 是在 Spring AI 的基础上进行抽象,正如它名字中“Spring”、“Alibaba”所体现的:项目由 Spring 开源社区、Alibaba 开源社区共同维护,Spring AI Alibaba 侧重智能体开发与 Spring 生态的无缝集成,以及阿里云基础大模型和其他开源能力的集成(例如 Qwen 大模型、Higress AI 网关、Nacos 等)。简单理解,就是把一项重复性的工作,提炼成一套最优化、最标准、最具体的操作步骤和规范。

2026-06-10 15:06:13 178

原创 Agent Skill

虽然Reference和Script都属于Agent skill的高级功能,但是他们对于模型上下文的影响是截然不同的。‌第三层:资源层:资源与脚本(Execution)‌ ——包含 参考文档(如 references/)、可执行脚本(如 scripts/)等,仅在指令中明确引用时按需读取或调用,其内容不进入模型上下文(仅结果进入),实现“零隐性开销”。Reference是按需加载的,如果用户没提到与reference相关的内容,那大模型是不会读取它的,这样就达到了节省上下文token的目的。

2026-06-05 15:40:53 229

原创 Qoder使用三:如何用好Qoder?

6,控制窗口上下文。上下文长度180k,已经使用的上下文长度. 尽可能多开窗口。委派式编程:真正的把一个需求交给agent,它不仅可以帮我们把需求做完,还可以把一部分验收工作做掉。(记住过去犯过的错,模型会自动添加到记忆里,Agent.md文件)较短上下文的对话,可以显著降低api调用成本。(编码规范,架构设计规范,安全与合规控制)AI编程的发展历程:从 辅助式编程 变成到 委派式编程。,不同的任务类型,选择合适的模型。让ai一次性帮你生成服务编码规范的代码。4,给模型提供尽可能多的有用信息。

2026-05-28 16:40:53 254

原创 基于SDD驱动的AI开发方法实践

SDD(Specification Driven Development,规范驱动开发)是一种以明确规范(Specification/Design Document)为基础,驱动 AI 自动生成设计方案、接口定义和代码实现的工程方法。​2, AI辅助理解规范​:将规范(如 OpenAPI、PlantUML、DSL 模型等)作为 AI 提示及约束输入,要求 AI 严格按照文档约定生成设计与代码;​3, 全过程可追踪​:每步的规范与设计可溯源、可回溯,AI 生成过程有据可查,便于人工审查与优化。

2026-05-27 09:49:45 338

原创 Qoder使用二:内置智能体

通过 Browser 智能体,你可以让 Qoder 不仅“读懂你的代码”,还可以“读懂你正在访问的网页”,在同一对话中完成代码编辑与网页操作协同,大幅减少在浏览器和 IDE 之间来回切换的成本。它可以在受控环境中打开网页、浏览内容、点击按钮、填写表单、滚动页面,并在必要时截图反馈页面状态,从而帮助你完成「需要实际访问网页」的自动化任务。浏览器智能体已内置于智能体模式中,无需单独配置。(例如“去官网查一下最新价格并总结差异”),智能体会在需要时。,无需你手动切换模式或编写脚本。浏览器智能体是在智能体模式下。

2026-05-26 15:43:33 131

原创 Qoder使用一:常用功能

原提示词:我想使用https://github.com/jinhongzou/FinQ4Cn-mcp-server,麻烦帮我确认本地环境,是否已经搭建完成,如果完成,找出fs_server.py全路径,并帮我配置mcp.json文件。

2026-05-25 16:49:44 130

原创 MCP使用

MCP是Java 界的 SpringCloud Openfeign,只不过 Openfeign 是用于微服务通讯的,而 MCP 用于大模型通讯的,但它们都是为了通讯获取某项数据的一种机制。MCP(Model Context Protocol)配置文件是AI开发中连接MCP服务器的核心文件,采用JSON 格式,定义服务参数。MCP 提供了一种标准化的方式来连接 LLMs 需要的上下文,MCP 就类似于一个 Agent 时代的 Type-C 协议,希望能将不同来源的数据、工具、服务系统一起来供大模型调用。

2026-05-25 13:52:41 354

原创 es常见操作

es常用api

2022-09-28 13:56:36 781

原创 apollo配置中心

apollo

2022-08-30 16:06:54 14454

原创 zookeeper集群

zookeeper集群

2022-08-30 15:19:52 1197

原创 oracle面试题

oracle常见面试题

2022-08-30 13:07:09 576

原创 20211117 项目原型的制作与使用

GroupId和ArtifactId1、groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。(项目的唯一性,maven管理项目包时,artifactId一般是项目名或者模块名,groupId点分命名法,artifactId中画线命名法)2、groupId和artifactId是maven管理项目包时用作区分的字段,就像是地图上的坐标。3、artifactId:artifactId

2021-11-17 19:19:20 1043

原创 20210616 日千万级流量架构优化策略

千万级流量架构策略了解现状:架构,业务特点;应急方案:改造时间短,可以短期支撑住访问压力。隔离热点,单独部署。就算热点挂了,也不影响其他功能。峰值QPS=(日总PV数*80%)/(日总秒数*20%) 这只是理论值pv*0.8/17280 pv/21600 每秒的峰值每天千万级流量1000万/21600=463QPS/s如果每台机器100QPS463/100 = 5台机器。我的单机可以支撑日千万级流量访问,但是 当前服务100QPS/S...

2021-06-16 21:06:40 804

原创 20210610 线程数不断飙升问题定位

1)现象通过监控发现,2)分析3)解决

2021-06-10 20:49:57 1715 1

原创 20210609 redis中info命令使用

info命令使用总结一,info Server包含了Redis服务本身的一些信息,例如版本号、运行模式、操作系统的版本、TCP端口等。

2021-06-09 16:55:49 3003

原创 20210608 由永久代到元空间

永久代(perm)永久代是Hotspot虚拟机特有的概念,是方法区的一种实现。在Java 8中,永久代被彻底移除,取而代之的是另一块与堆不相连的本地内存——元空间。永久代或者“Perm Gen”包含了JVM需要的应用元数据,这些元数据描述了在应用里使用的类和方法。注意,永久代不是Java堆内存的一部分。永久代存放JVM运行时使用的类。永久代同样包含了Java SE库的类和方法。永久代的对象在full GC时进行垃圾收集。在Java8中,元空间(Metaspace)登上舞台,方法区存在于元空间(M

2021-06-08 20:10:20 257

原创 20210608 对象的内存大小计算

1,对象在堆内存中的存储格式;2,数据类型的大小;3,使用工具获取对象大小;1,对象在堆内存中的存储格式;

2021-06-08 17:52:17 657 1

原创 20210605 缓存一致性方案

测试

2021-06-05 23:34:29 223

原创 20210604 Redis连接池常用配置

测试

2021-06-04 17:20:50 2636

原创 20210601 线程池中的异常处理

线程池异常处理1,Runnable接口的run方法的完整签名,没有标识throws语句,所以方法是不会抛出checked异常的。至于RuntimeException这样的unchecked异常,由于新线程由JVM进行调度执行,如果发生了异常,也不会通知到父线程。即:子线程中发生了异常,如果没有任何类来接手处理的话,是会直接退出的,虚拟机直接杀死线程,而不会记录任何日志。所以,如果什么都不做的话,是会出现子线程任务既没执行成功,也没有任何日志提示的“诡异”现象的。java线程中,如果抛出未被捕获的

2021-06-03 18:29:23 1024

原创 20210531 Synchronized三种用法

Synchronized三种用法类锁,对象锁,普通同步方法,静态同步方法,同步代码块。先来看下利用synchronized实现同步的基础:Java中的每一个对象都可以作为锁,即一个对象一把锁。具体表现为以下3种形式。1,对于普通同步方法,锁是当前实例对象;进入同步代码前要获得当前实例的锁;2,对于静态同步方法,锁是当前类的Class对象;当前类加锁,进去同步代码前要获得当前类对象的锁;3,对于同步方法块,锁是Synchonized括号里配置的对象。这需要指定加锁的对象,进入同步代码前要获

2021-05-31 20:38:38 885

原创 20210523 rpc调用和http调用的区别

测试

2021-05-23 23:36:49 920

原创 20210522 SL4J+LOG4J2日志框架

测试

2021-05-22 22:42:17 279

原创 20210521 Mysql索引底层原理和索引优化

一,MySQL索引底层的实现索引是帮助MySQL高效获取数据的排好序的数据结构;上图中有一张表,表名为 t ,表中有7条数据;使用select * from t where t.clo2 = 89查询;1、若表中没有创建索引,则会全表扫描,一条一条的遍历查询,需要遍历 6 次,查询一行数据至少和磁盘做一次I/O操作(I/O是很耗性能的),至少要做 6 次 I/O 操作;2、表中建立了索引:1)若索引底层是二叉树(左边的子元素小于父元素,右边的子元素大于父元素)存储的,则如下图所示..

2021-05-21 20:29:21 551 3

原创 20210520 使用jmap分析虚拟机内存状况

堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的。栈与堆栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、

2021-05-20 16:11:18 1673 1

原创 20210520 使用jstat分析垃圾收集状况

常用命令:jstat -gcutil <pid> 1000gc垃圾回收信息gcXXX各区域GC的详细信息,如-gcoldJava 堆分为新生代和老年代,新生代一般划分为三块区域,Eden + From Survivor + To Survivor,Eden 和 Survivor 的内存比为8:1,每次只使用一个Eden 和一个 Survivor 区域,另一个 Survivor 用于复制收集算法回收内存。对象一般尽量分配到新生代中,而对于大对象(长字符串和大数组)直接分配

2021-05-20 14:33:30 325 1

原创 20210519 使用jstack命令排查线程死锁问题

jstack主要用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。1,死锁代码如下/** * 测试死锁问题 */public class DeadLockDemo { public static

2021-05-19 15:44:51 1827 1

原创 20201113 心跳检测

作用:监视机器的运行状况,提高系统可用性的措施;分类:心跳检测有2种: 主动和被动;实现:定时线程池,发送心跳包;缺陷:收不到心跳,并不能说明系统宕机;在集群环境中,一台主Master机器会管理好几台slave机器,Master机器的一个重要功能是如何在运行过程中监视slave机器的运行异常状态,如网络断链,系统崩溃,从而对这些异常状态进行处理。采取的方式是心跳检测。心跳检测有2种: 主动和被动主动是指Master节点定时向所有节点发送心跳检测请求,所有节点响应后返回一个状态码.

2020-11-13 14:25:39 1126

原创 20201113 equals()与hashcode()

思考:使用equal的对比字符串是否相同的代码可以简化;先对比hashcode值看看是否相等;几类常见的hash码算法两个一定。三千次对比;降低 equals方法的调用次数;提高对比的效率。使用hash算法提高在散列结构中查找的效率。hashset集合如何保证元素唯一的,通过什么提升对比效率?(hash容器中)重写了equals方法后,为什么要重写hashCode方法? 该类无法结合所有基于散列的集合一起正常运作。hashcode方法只有在集合中用到equals方法的作.

2020-11-13 14:20:35 154

原创 20201110 Fabric SDK区块链

Fabric区块链网络Fabric整体架构Fabric共识排序Fabric账本存储Fabric智能合约配置文件,网络部署,合约交互。链码编写,链码交互。区块链基础知识,GO语言编程技能。Fabric基础架构,部署运维,链码;基础概念:交易Transaction:一次状态转移操作,比如一次转账,一次对键值对的增删改查;区块Block:交易的集合, 把某一时间段内的交易打包,就形成了一个区块。链Chain:区块的顺序排列。 单链表结构。每个区块都又一个自己的.

2020-11-10 16:31:06 291 1

原创 20201102 java静态变量Map设置为空

static变量的性质:初始化只有一次,但是可以多次赋值。静态变量可以重新赋值(即多次赋值)除了final声明的外,其他的都可以赋值。静态变量也是变量,只有静态常量才只能赋值一次。静态变量,静态方法;被所有对象共享;static优先于对象存在,随着类的加载已经存在。共享数据,特有数据;成员变量与静态变量的生命周期不同。数据存储位置不同:堆内存的对象中,方法区(共享数据区)的静态区。也叫对象的共享数据。JAVA的static的特点,以及成员变量和静态变量..

2020-11-02 17:36:23 957

原创 20201102 Thread和Runnable的区别

new Thread的弊端如下a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。c. 提供定时执行、定期执行、单线程、并发数控制等功能

2020-11-02 15:28:29 236

原创 20201102 Spring中自定义事件及监听

Spring自定义事件及监听,底层是观察者模式核心类:ApplicationEvent与ApplicationListenerApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制。如果容器中存在ApplicationListener的Bean,当ApplicationContext调用publishEvent方法时,对应的Bean会被触发。这一过程是典型的观察者模式的实现。1,

2020-11-02 15:16:42 248

原创 20201102 布隆过滤器解决缓存穿透

字节数组,元素是0或者1.添加元素的时候,判断元素是否存在的时候。它可以通过一个Hash函数将一个元素映射成一个位阵列(Bit array)中的一个点。这样一来,我们只要看看这个点是不是1就可以知道集合中有没有它了。这就是布隆过滤器的基本思想。判断元素在不在一个集合里面,如果集合里面的元素非常大,这个判断过程是非常耗时的,而且集合占用空间也很大。布隆过滤器存储空间和插入/查询时间都是常数。Hash函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格

2020-11-02 14:40:00 237

原创 20201102 门面设计模式

门面设计模式: response中getWriter方法就是封装了outputStream三个角色:子系统角色,门面角色,客户端角色。持有对方的实例。门面设计模式相当于聚合层,就像云鹊的api-ws微服务。子系统中有些方法对外提供暴露,有些方法仅仅对其他子系统提供。在哪些情况下使用门面设计模式?医院的例子现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为.

2020-11-02 11:45:59 341 2

原创 20201030使用jvisualvm排查内存溢出(OOM)过程

内存溢出在开发中或者线上出现的概率很高,造成的直接结果是系统运行缓慢,或者直接宕机。在这里模拟下内存溢出的情况以防患于线上出现内存溢出要如何排查问题,线上出问题需要生成一个快照(hprof文件),在本地查看问题。其他工具调试如阿里的Arthas、MAT、jvisualvm。1,准备一个可以出现内存溢出的代码:public class TestOOM { public static void main(String[] args) { List<Object&

2020-10-30 14:58:14 1826

原创 20201030ThreadPoolExecutor线程池

如何模拟高并发场景? public static void main(String[] args) { //模拟高并发场景 ExecutorService service = Executors.newFixedThreadPool(100); //模拟多少的并发 for (int i = 0; i < 2000; i++) { service.submit(new Callable<Object

2020-10-30 10:43:13 302

原创 20201029 Actuator监控

一,Spring Boot Actuator将核心的微服务应用全部监控起来,借助Spring Boot 的Actuator 模块。SpringBoot 微服务应用集成Prometheus + Grafana实现监控告警。Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能可以通过HTTP访问。因为暴露内部信息的特..

2020-10-29 21:17:26 829 1

c#基础编程小程序

一些简单的小程序,求水仙花数,进行异常检测等等

2014-08-21

.net服务器端性能优化

.net服务器端性能优化

2016-12-20

图片多点触控代码案例 可以直接拿来用

图片多点触控功能的实现、特别好用、能够减少很多时间。原理是手势识别和边界控制

2016-07-19

数据库基础操作

数据库基本操作:增删改查

2016-10-25

自定义对话框

自定义对话框,直接可以拿来用的。

2016-07-29

安卓开发中的mvp模式、小案例源码

安卓开发中的mvp模式、小案例源码

2016-05-05

安卓开发中的图片加载框架Glide 案例源码

安卓开发中的图片加载框架Glide 案例源码

2016-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除