- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 GPT 大模型应用开发概览
随着大模型的风靡,越来越多的企业希望使用大模型来提高自己的服务能力,即在自己的软件中集成大模型的能力,希望让大模型解决一些特定的问题。大模型的应用开发,其本质上是提示词工程,如何组好提示词,直接决定了整个应用的最终能力。说到提示词,首先就是常规的提示词技巧。需要认识到的是大模型是整个人类历史知识的集大成者,当然这里说的是通用大模型设计目标。
2024-06-20 18:55:29 496
原创 高可用系列六:服务监控
服务监控的目的是为了尽早发现出现的问题,减少或避免可能造成的损失。监控首先要解决的问题是监控什么,即监控的方法,其次是如何有效告警,最后是如何跟踪处理告警。
2024-05-27 14:58:49 482
原创 高可用系列五:注册与发现
注册与发现,主要需要解决的就是服务如何找到可用的依赖服务实例。即需要在注册中心尽量保持服务的健康状态,这里用尽量,则是因为保持状态一致性的复杂问题(详细可了解CAP概念)。因此几乎所有的注册中心服务设计,CAP的选择上都是AP架构,产生的短期不一致问题,则由其他方面,如负载均衡结合重试机制来实现。
2024-05-27 14:56:28 384
原创 高可用系列四:loadbalancer 负载均衡
负载均衡可以单独使用,也常常与注册中心结合起来使用,其需要解决的问题是流量分发,这是就需要定义分发策略,当然也包括了故障切换的能力。负债均衡也是高可用中很重要的一环,而且巧用负载均衡,还可以实现开发环境中降本增效的效果。
2024-05-02 18:05:18 759
原创 高可用系列三:事务
都成功或者都失败是事务目标,实际中往往会采用最终一致、最大努力一致和不一致时人工介入策略。评估事务,通常会根据业务特点,考虑对于事务相关业务之间所需的时效性、依赖联系因素,框定事务可用方案,并结合事务实现代价综合评定选择事务方案。实际过程中事务的解决需要根据业务的特定来进行方案选择,而且也可能是一个长事务采用多种方案结合的方案,利用消息中间件是一种有效的降低复杂度和提升可维护性的方案,单采取该方案实现有明显的副作用,一是延迟,二是消息监控问题。
2024-05-02 18:03:40 648
原创 高可用系列之重要的小点:请求/重试机制
请求/重试机制这个点虽然非常非常重要(详情请看),但确实能说的不多,当然关键点还是有的。首先就是超时时间的设置,一般有两个值,connectTimeout 和 socketTimeout(有些地方也叫 readTimeout)。其次是重试的逻辑。
2024-04-10 18:24:15 360 1
原创 高可用系列二:绝对核心——服务请求幂等
服务请求幂等,简单地解释可以为同一次请求,因为各种原因重试时得到的结果一致或者可被识别,这里的结果一致指的是对于平台数据的变更影响,比如重复提交同一订单,会不会生成重复订单。从上一篇(高可用系列一:高可用问题是如何产生的)分析可以看出,请求幂等在高可用场景是非常重要的一环。
2024-04-10 17:18:06 726 1
原创 高可用系列特殊场景:第三方限时唯一访问令牌
很多第三方服务,都使用访问令牌来做访问验证,比如某度、某信的access token,主要特征如下:1、令牌由第三方系统发放,用于访问第三方特定资源;2、令牌存在有效期限,过期自动失效;3、同时只存在一个有效令牌,重新获取后之前获取到的令牌将会过期(这一点不是每个平台都严格限制,我们假设严格限制)。
2024-04-05 17:02:16 272 1
原创 高可用系列一:高可用问题是如何产生的
总得来说,我们在实现系统高可用时,目的是为了尽量让用户持续得到正确的结果,实现产品价值。当然从研发团队来说,这一系列措施是增加系统的被信赖关系,同时也很重要的一点是避免让开发人员陷入持续的救火中。一般需要采取的措施主要如下:1、系统版本推送与刷新机制、服务地址动态获取2、超时、重试机制,引申问题:请求幂等、服务发现与负载均衡策略3、多实例部署,避免单点,引申问题:服务发现、服务状态维护、服务伸缩4、资源池的合理管理5、服务熔断、服务限流。
2024-04-05 16:12:03 764 1
原创 chatGPT-编程篇
1、程序员会不会被完全替代;2、不能有效使用chatGPT的程序员会不会被淘汰;3、如何基于chatGPT的特点,进行有效提问;4、公司(团队)如何整体提效(一致性、高效性);5、可能存在并需要注意的问题
2023-05-30 09:45:01 1292
原创 webflux webfilter跳过后续filter及重定向的实现
webflux中如果想跳过后续的webfilter,又想执行最终的controller方法,以及类似springmvc中redirect重定向实现
2022-06-10 18:31:16 2117
原创 Redisson PermitExpirableSemaphore 剖析
某些场景下需要考虑信号量机制,比如控制整体的并发量,redisson提供了在分布式环境下的解决方案,即 PermitExpirableSemaphore。记录一下,主要是是否会重复初始化导致重置可用信号量、如何变更总可用信号量。使用非常简单,以下是官方的使用示例:RPermitExpirableSemaphore semaphore = redisson.getPermitExpirableSemaphore("mySemaphore");semaphore.trySetPermits(2
2022-03-30 18:58:51 1895
原创 如何做产品、梳理需求
不管是产品还是需求,这里指的是软件,其他的事物可以自我迁移看是否适用,都是要解决一些问题,也就是所谓的产品/需求价值。所谓“愿景”,就会被提出来。一、愿景从字面本身来说,其实就很明显,通俗来说,就是期望得到的结果。既然是期望,那么就避不开人,第一个要考虑的就是决策者,决策者对于这个事本身有什么期望和定义,相信从一开始这一定无法准确获得,包括决策者自身。至于为什么,很简单,就是大家对于事物本身的认知都是受一定局限的,没有人可以得到真正“全面”的信息。但是有一点,如果和竞争对手相比,你做了分析,即便
2022-01-30 16:09:38 834
原创 服务启动失败,Nacos 注册成功处理问题
问题解决思路:Nacos 注册前,先验证 spring actuator 的health状态,如非健康状态,则设置注册启用状态为false。注:本文使用 SpringCloud 2.2.13.RELEASE 版本。一、Nacos 注册前执行点Nacos 注册通过 WebServerInitializedEvent 事件触发,具体代码在org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration#o
2022-01-24 11:49:52 3167
原创 点评 CAT使用Consul注册发现服务
点评CAT是灵活性非常高的RPM项目,但是实际使用的时候,我们希望可以弹性地添加Server并让客户端可以动态的发现。因此想到了使用注册发现服务,比如Consul。git上开源的版本,使用的是三个配置文件:client.xml,server.xml和datasources.xml,并要求放在/data/appdatas/cat目录下,client.xml和server.xml都配置了可用...
2018-08-06 11:20:27 1608
原创 《管理:使命、责任、实务》之实务篇私人读书笔记
德鲁克被称为管理领域大师中的大师,本文分享了其经典巨著《管理:使命、责任、实务》之实务篇的私人读书笔记,附有思维导图源件思维导图原稿下载
2018-03-20 09:39:25 2611 6
原创 Python 二维数组排序问题
希望一个二维数组,先按第二列排序,再按第一列排序,网上找了一圈没找到,后来不停尝试终于找到一个方法,代码如下:a = [[2,3,4], [2,4,5],[3,3,4]]sorted(a, key=lambda x: (x[1], x[0]))输出结果为:[[2, 3, 4], [3, 3, 4], [2, 4, 5]]目的达成,记录一下
2017-12-25 14:13:43 8867
原创 tensorflow手动编译的坑
按照官方文档,tensorflow手动编译获取代码如下:git clone https://github.com/tensorflow/tensorflow cd tensorflowgit checkout Branch # where Branch is the desired branch,如git checkout r1.0这里有个巨坑,如果你打开git上的Branches,会看到(不同
2017-12-22 17:31:08 1556
原创 numpy 计算两个数组重复程度
最近有个需求,是做两个数组重复程度计算,麻烦就麻烦在单个数组的元素有可能重复,处理思路如下: 1. 找到重复元素 2. 元素个数统计,利用np.bincount转换,即元素个数统计到元素转化的索引 3. 统计相同元素匹配个数具体代码如下:# arr1, arr2都是np.array类型
2017-12-22 17:24:13 12010
原创 keras backend 越跑越慢
如题,在调用模型的predict方法后,用tensorflow作为backend调用如下类似方法时,会越跑越慢(时间逐次递增):K.get_valueK.evalK.get_session().run()问题不详,暂时没有找到可行的解决方案,目前可以做的方式为,在Model定义的outputs前做处理,比如定义一个Lambda函数,处理过后放到outputs后作为结果。
2017-12-22 16:52:01 2859
原创 conda 安装指定版本的指定包
因为一些特殊情况,可能会想安装一些特定的包,比如,我自己就在安装tensorflow时不想升级cudnn,而cuda search tensorflow-gpu 有如下结果(只截取了1.2.1版本相关数据,用的清华源): 1.2.1 py27cuda7.5cudnn5.1_0 https://mirrors.tuna.ts
2017-12-01 11:04:55 63079 5
原创 Tensorflow Serving不支持py_func
如题,在一些情况下,我们可能希望编写一些自己的python代码,不完全使用tensorflow已提供的计算图来做,在一般情况下,可以使用tf.py_func。 但是如果想让该代码部署到tensorflow serving上,那么恭喜,tensorflow serving是不支持的,会报如下错误:Loading servable: {name: 模块名 version: 版本号} failed: N
2017-11-29 14:26:52 2457 3
原创 bazel-0.5.4-installer-linux-x86_64.sh 下载
如题,Tensorflow Serving 安装用到的bazel安装包,自己下得很费劲,现在分享出来: http://pan.baidu.com/s/1pKLKnUz
2017-11-22 15:43:31 2811 3
原创 tensorflow serving 服务部署与访问(Python + Java)
Tensorflow Serving 服务docker部署Tensorflow Serving 模型生成与部署Python grpc 对Tensorflow Serving服务调用Java grpc 对Tensorflow Serving服务调用
2017-11-21 15:00:24 31529 32
原创 tfrecords的分类处理 one hot
通常,我们写入tfrecords的分类都是以该格式存储的:"label": tf.FixedLenFeature([], tf.int64)然后取出的feature这样定义:"label": tf.FixedLenFeature([], tf.int64)取值代码:label = tf.cast(features["label"], tf.int32)然后发现我们不
2017-11-13 09:09:05 701
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人