- Protocol: Bolt v1 v2 maps status code api.NoHealthUpstreamCode -> ResponseStatusNoProcessor (#2018) @antJack.
- Should allow AppendGracefulStopStage and AppendBeforeStopStage when MOSN is starting or running (#2029) @rayowang.
- Fix wrong variable in error message when workerPool Panic (#2019) @antJack.
- Protocol: bolt support GoAway (#1993) @z2z23n0
- Protocol: HTTP health check support more configurations (#1999) @dengqian
- Add new Admin API for query MOSN version (#2002) @songzhibin97
- Exit code change to 2 when mosn start failed in upgrade mode (#2006) @doujiang24
- Add a new function to check whether MOSN is in active upgrading state (#2003) @doujiang24
- Add new command: stop (#1990) @Jun10ng
- Fix the problem that the domain name update result is wrong when there are multiple DNS domain names in StrictDnsCluster (#1994) @Jun10ng
- Fix upgrade state check error when metrics is configured to shared memory (#2011) @nejisama
- Support istio v1.10.6 by default. Support switch istio version by make command, current MOSN support v1.10.6 and v1.5.2. (#1910) @nejisama
- Support use variables to configure route headers add or remove. (#1946) @MengJiapeng
- Support health check's initialize interval can be configured (#1942) @rickey17
- Add HTTP Dial for upstream cluster health check (#1942) @rickey17
- Add extension callback function for tls context created. @antJack
- Support extension for Listener and Connection created. @antJack
- Support graceful shutdown for xprotocol framework. (#1922) @doujiang24
- Support graceful shutdown for MOSN (#1922) @doujiang24
- Integrated Holmes for automatically pprof (#1978) @doujiang24
- Add Fetch and RequireCert for SDS client @nejisama
- Add a new tls verify extension: sni verify (#1910) @nejisama
- Upgrade dubbo-go-hessian to v1.10.2 (#1896) @wongoo
- Add new configuration for upstream cluster: IdleTimeout (#1914) hui-cha
- Transfer some upstream cluster configuration constants to
config/v2
package (#1970) @jizhuozhi - Add variable to store request raw data in xprotocol protocols implementations @antJack
- Add new configuration for original-dst filter: localhost listener can be used in listener match fallback (#1972) @nejisama
- Add new configuration for original-dst cluster: use localhost address as the target address @nejisama
- Do not use vendor mode any more, use go mod instead. (#1997) @nejisama
- Refactor MOSN state management and stage management. (#1859) @doujiang24
- Shield signal processing extension related interfaces, do not expose semaphore to developers, and modify it to be scalable for behavior after receiving a signal. (#1859) @doujiang24
- Use separate IoBuffer for log (#1936) @nejisama
- Refactor sds provider, support a sds config to generate different tls config (#1958) @nejisama
- Optimize the irregular module naming in examples. (#1913) @scaat
- Delete some useless fields in connection struct (#1811) @doujiang24
- Optimize the heap management in edf loadbalancer (#1920) @jizhuozhi
- Optimize the error message when get variables returns error (#1952) @antJack
- Optimize the memory reuse in proxy: a finished request received reset will take no effect on memory reuse now @wangfakang
- Optimize the memory usage in maglev loadbalancer (#1964) @baerwang
- Support error log to iobuffer error, support exception handling when log rotation error occurs (#1996) @nejisama
- Fix: when stream id is too large in http2, the connection is not closed. (#1900) @jayantxie
- Fix: route error log output is abnormal (#1915) @scaat
- Fix: xprotocol go plugin example build errors (#1899) @nearmeng
- Fix: original-dst filter get ip errors being ignored (#1931) @alpha-baby
- Fix: HTTP may cause hangs in high concurrency (#1949) @alpha-baby
- Fix: istio config parse extension spell error (#1927) LemmyHuang
- Fix: proxy may cause nil panic when get variables (#1953) @doujiang24
- Fix: HTTP cannot get reason for connection reset (#1772) @wangfakang
- Fix: cannot restart a stopped listener (#1883) @lemonlinger
- Fix: strict-dns debug log output is abnormal (#1963) @wangfakang
- Fix: divide 0 error in edf loadbalancer (#1970) @jizhuozhi
- Fix: listener may cause nil panic when set deadline (#1981) @antJack
- Fix: some typo errors @Jun10ng @fibbery
- Fix: too many goroutines makes go test race failed (#1898) @alpha-baby
For implementing new protocols more nature, XProtocol is no longer as a protocol and no subprotocol any more. XProtocol is a framework to implement protocol easier now. So, the old existing code for implementing new protocols need some changes, please see this doc(In Chinese) for changing the old existing code suit for the new release.
- Added the ip_access new filter to manage access control based on IP (#1797). @Bryce-huang
- Support admin api extends auth functions (#1834). @nejisama
- The transcode filter module support dynamic phase (#1815). @YIDWang
- Added the SetConnectionState method for tls connection in pkg/mtls/crypto/tls.Conn (#1804). @antJack
- Added the after-start and after-stop two new stages, and allow to register handler during these stages. @doujiang24
- Support specify the unix domain socket directory by adding the new "uds_dir" configuration (#1829). @dengqian
- Support choose dynamic protocol convert dynamically and allow register transcoder through go-plugin. @Tanc010
- Added more HTTP protocol method to make protocol matcher work properly (#1870). @XIEZHENGYAO
- Support to set upstream protocol dynamically (#1808). @YIDWang
- Support set default HTTP stream config #1886. @nejisama
- Change the default max header size to 8KB (#1837). @nejisama
- Refactory default HTTP1 and HTTP2 convert, remove the proxy convert, use transcoder filter instead. @nejisama
- transcoder filter: changed to register trancoder factory instead trancoder (#1879). @YIDWang
- Fix a HTTP buffer reuse related bug that may leads to nil panics in high concurrency case. @nejisama
- Fix: get the proper value of variable response_flag, (#1814). @lemonlinger
- Fix: prefix_write not work with "/" (#1826). @Bryce-huang
- Fix: the reconfig.sock file may be removed unexpectly when killed the old MOSN manually during smoothly upgrade, (#1820). @XIEZHENGYAO
- Fix the bug in doretry: should not set setupRetry to false directly, since the old response should be skip when the new upstream request has been sent out (#1807). @taoyuanyuan
- Should set the inherit config back to the MOSN instance (#1819). @XIEZHENGYAO
- Should send resetStreamFrame to upstream when cancel grpc context at client side, otherwise server side context won't be done. @XIEZHENGYAO
- Should set the resetReason before closing the stream connection, otherwise, may unable to get the real reason (#1828). @wangfakang
- Should use the listener that best match when found multi listeners, otherwise, may got 400 error code. @MengJiapeng
- Fixed panic due to concurrent map iteration and map write during process setting broadcast in HTTP2 protocol. @XIEZHENGYAO
- Fix memory leak occurred in the binding connpool of XProtocol (#1821). @Dennis8274
- Should close logger at the end, otherwise, may lost log during close MOSN instance (#1845). @doujiang24
- Fix panic due to codecClient is nil when got connect timeout event from XProtocol PingPong connection pool (#1849). @cuiweixie
- Health checker not work when the unhealthyThreshold is an empty value (#1853). @Bryce-huang
- WRR may leads dead recursion in unweightChooseHost #1860. @alpha-baby
- Fix direct response, send hijack should not transcode. @nejisama
- Fix EDF wrr lb cannot choose a healthy host when there's a unhealthy host with a high weight. @lemonlinger
- Got the wrong CACert filename when converting the listen filter from Istio LDS, MOSN may not listen success (#1893). @doujiang24
- The goroutine for resolving hosts in STRICT_DNS_CLUSTER cannot be stopped #1894 @bincherry
- Routing configuration supports remove request headers. @wangfakang
- Support WASM Reload. @zu1k
- Integrated SEATA TCC mode, support HTTP protocol. [@dk-lockdown]((https://github.com/dk-lockdown)
- Support boltv2 protocol tracelog. @nejisama
- New metrics stream filter for gRPC framework. @wenxuwan
- Support DNS related configuration in xDS cluster config. @antJack
- Decouple MOSN core and Istio related xDS code. @nejisama
- Upgrade proxy-wasm-go-host version. @zhenjunMa
- Refactor networkfilter configuration parse functions, support
AddOrUpdate
andGet
. @antJack
- Use
mod vendor
instead ofGO111MODULE=off
in Makefile. @scaat - Move some archived repo code into
mosn.io/pkg
. @nejisama - Optimize EDF loadbalancer: random pick host at the first select time. @alpha-baby
- Optimize EDF loadbalancer performance. @alpha-baby
- Optimize boltv2 protocol heartbeat's trigger and reply. @nejisama
- Optimize HTTP2 retry processing in stream mode, optimize HTTP2 unary request processing in stream mode. @XIEZHENGYAO
- Ignore CPU numbers limit when use environment variable to set GOMAXPROCS. @wangfakang
- Reduce memory alloc when create subset loadbalancer. [@dzdx]((https://github.com/dzdx)
- Support different listener can independent run same name gRPC Server. @nejisama
- Fix MOSN hangs up when host is empty when retry. @XIEZHENGYAO
- Fix connections in
msgconnpool
cannot handle connect event. @RayneHwang - Fix MOSN panic when tracer driver is not inited and someone calls tracer
Enable
. @nejisama - Fix boltv2 protocol constructs hijack response version wrong. @nejisama
- Fix HTTP2 handle connection termination event. @XIEZHENGYAO
- Fix typo. @jxd134 @yannsun
- Fix
ResponseFlag
outputs inRequestInfo
. @wangfakang - Fix bolt/boltv2 protocol not recalculated the empty data's length. @hui-cha
- Support jaeger to collect OpenTracing message @Roger
- Routing configuration new variable configuration mode, you can modify the routing results by modifying the variable @wangfakang
- Routing virtualhost matching supports port matching mode @jiebin
- Impl envoy filter: header_to_metadata @antJack
- Support graceful for uds @taoyuanyuan
- New subset load balancing logic to use the full list of machines for load balancing in scenarios where there is no metadata matching @nejisama
- MOSN's grpc framework supports graceful stop @alpha-baby
- Optimize health check update mode for Cluster configuration updates @alpha-baby
- Add OnConnectionEvent interface in api.Connection @CodingSinger
- Weighted roundrobin loadbalancer underwriting policy adjusted to normal roundrobin load balancer @alpha-baby
- Enhance interface value in mosn variable model @antJack
- Subset also follows the same underwriting strategy when determining the number of machines and whether they exist @antJack
- Dubbo stream filter supports automatic protocol recognition @Thiswang
- Fix roundrobin loadbalancer result exception in case of concurrency @alpha-baby
- Fix unix address resolution exception @taoyuanyuan
- Fix the exception that HTTP short connection cannot take effect @taoyuanyuan
- Fix a memory leak in the TLS over SM3 suite after disconnection @ZengKe
- HTTP2 support doretry when connection reset by peer or broken pipe @taoyuanyuan
- Fix the host information error from the connection pool @Sharember
- Fix data race bug when choose weighted cluster @alpha-baby
- Return invalid host if host is unhealthy in EdfLoadBalancer @alpha-baby
- Fix the problem that XProtocol routing configuration timeout is invalid @nejisama
- Add new networkfilter:grpc. A grpc server can be extended by networkfilter and implemented in the MOSN, reuse MOSN capabilities. @nejisama @zhenjunMa
- Add a new extended function for traversal calls in the StreamFilterChain. @wangfakang
- Add HTTP 403 status code mapping in the bolt protocol. @pxzero
- Add the ability to shutdown the upstream connections. @nejisama
- Optimize the networkfilter configuration parsed. @nejisama
- Support extend proxy config by protocol, optimize the proxy configuration parse timing. @nejisama
- Add tls conenction's certificate cache, reduce the memory usage. @nejisama
- Optimize Quick Start Sample. @nobodyiam
- Reuse context when router handler check available. @alpha-baby
- Modify the NewSubsetLoadBalancer's input parameter to interface instead of the determined structure. @alpha-baby
- Add an example of using so plugin to implement a protocol. @yichouchou
- Optimize the method of get environment variable
GOPATH
in theMAKEFILE
. @bincherry - Support darwin & aarch64 architecture. @nejisama
- Optimize the logger file flag. @taoyuanyuan
- Fix the bug of HTTP1 URL encoding. @morefreeze
- Fix the bug of HTTP1 URL case-sensitive process. @GLYASAI
- Fix the bug of memory leak in error handling when the tls cipher suite is SM4. @william-zk
- Add Wasm extension framework @antJack
- Add x-bolt sub-protocol to allow wasm-based codec for XProtocol @zonghaishang
- Support fallback through SO_ORIGINAL_DST when protocol auto-matching got failed @antJack
- Support Go Plugin mode for XProtocol @fdingiit
- Support for network extension @wangfakang
- Update to Istio xDS v3 API @champly Branch: istio-1.7.7
- Remove redundant file path clean when resolving StreamFilter configs @eliasyaoyc
- Allow setting a unified callback handler for the StreamFilterChain @antJack
- Support multi-stage execution and remove state lock for the FeatureGate @nejisama
- Add trace support for HTTP2 @OrezzerO
- Add StageManger to divide the bootstrap procedure of MOSN into four configurable stages @nejisama
- Unify the type definitions of XProtocol and move into mosn.io/api package @fdingiit
- Add GetTimeout method for XProtocol to replace the variable getter @nejisama
- Fix concurrent read and write for RequestInfo in Proxy @nejisama
- Fix the safety bug when forwarding the request URI @antJack
- Fix concurrent slice read and write for Router configurations when doing persistence @nejisama
- Upgrade sentinel version to v1.0.2 @ansiz
- Shrink the read buffer of tls when read timeout, reduce tls memory consumption @cch123
- Add comments and simplify the implementation of the xprotocol protocol connpool @cch123
- Update the mosn registry version @cadeeper @cch123
- Optimize header matching logic when routing, support general RPC routing matching implementation @nejisama
- Delete some of the original constants and add constants used to describe the mechanism of variables @nejisama
- Refactor flow control module, support custom callback extension, realize the ability to customize filter conditions and modify context information, etc @ansiz
- Fix metrics statistics error when request is abnormal @cch123
- Fix the bug that the URL is not escaping before forwarding HTTP request @antJack
- Fix the variable injection errors in HTTP protocol, Fix the bug that routing rewrite is not supported in the HTTP2 protocol @nejisama
- Support Domain-Specific Language route implementation @CodingSinger
- StreamFilter supports the dynamic link libraries written in Go @CodingSinger
- VirtualHost supports per_filter_config configuration in routing configuration @machine3
- Xprotocol supports dubbo thrift protocol @cadeeper
- Add UDS address prefix check before UDS resolution when TCP address resolution fails @wangfakang
- Optimized the retrial interval for connection pool acquisition @nejisama
- Add global switch for write loop mode @nejisama
- Optimize auto protocol matching and add test cases @taoyuanyuan
- Replace the headers with more efficient variables @CodingSinger
- Pool the writeBufferChan timer to reduce overhead @cch123
- Add MOSN failure detail info into TraceLog @nejisama
- New read done channel in HTTP protocol processing @alpha-baby
- Enhance logger rotator @nejisama
- Upgrade to golang 1.14.13 @nejisama
- Refactor router chain extension mode to the route handler extension mode, support different router handler configuration @nejisama
- Refactor MOSN extended configuration, support load config according to configuration order @nejisama
- Fix the bug no provider available occurred after dubbo2.7.3 @cadeeper
- Fix the bug that UDS connections were treated as TCP connections in netpoll mode @wangfakang
- Fix the problem that the HTTP Header cannot be obtained correctly when it is set to an empty value @ianwoolf
- Support old Mosn transfer configuration to new Mosn through UDS to solve the issue that Mosn in XDS mode cannot be smoothly upgraded @alpha-baby
- Automatic protocol identification supports the identification of XProtocol @cadeeper
- Support configuration of the keepalive parameters for XProtocol @cch123
- Support more detailed time tracking @nejisama
- Support metrics lazy registration to optimize metrics memory when number of service in cluster is too large @champly
- Add setter function for default XProtocol multiplex connection pool size @cch123
- Support netpoll @cch123
- Support broadcast @dengqian
- Support get tls configurations from LDS response @wZH-CN
- Add ACK response for SDS @wZH-CN
- Use the latest TLS memory optimization scheme @cch123
- Proxy log optimization to reduce memory escape @taoyuanyuan
- Increase the maximum number of connections limit @champly
- When AccessLog fails to obtain variables, use "-" instead @champly
- MaxProcs supports configuring automatic recognition based on CPU usage limits @champly
- Allow specifying network for cluster @champly
- Refactored the StreamFilter framework. The network filter can reuse the stream filter framework @antJack
- Fix HTTP Trace get URL error @wzshiming
- Fix the ConnectTimeout parameter of xDS cluster is not converted @dengqian
- Fix the upstreamHostGetter method gets the wrong hostname @dengqian
- Fix tcp proxy close the connection abnormally @dengqian
- Fix the lack of default configuration of mixer filter, resulting in a nil pointer reference @glyasai
- Fix HTTP2 direct response not setting
Content-length
correctly @wangfakang - Fix the nil pointer reference in getAPISourceEndpoint @dylandee
- Fix memory increase caused by too many Timer applications when Write is piled up @champly
- Fix the problem of missing stats when Dubbo Filter receives an illegal response @champly
- Add MOSN configure extension @nejisama
- Add MOSN configuration tool mosn/configure, improve user configure experience @cch123
- Avoid copying http response body @wangfakang
- Upgrade
github.com/TarsCloud/TarsGo
package, to v1.1.4 @champly - Add test for various connpool @cch123
- Use sync.Pool to reduce memory cost by TLS connection outBuf @cch123
- Reduce xprotocol lock area @cch123
- Remove useless parameter of
network.NewClientConnection
method, remove ALPN detection inDispatch
method of structstreamConn
@nejisama - Add
TerminateStream
API toStreamReceiverFilterHandler
, with which stream can be reset during handling @nejisama - Add client TLS fallback @nejisama
- Fix TLS HashValue in host @nejisama
- Fix disable_log admin api typo @nejisama
- Fix
go mod tidy
failing @champly - Fix
ResourceExhausted: grpc: received message larger than max
when MOSN receive > 4M XDS messages @champly - Fix fault tolerance unit-test @wangfakang
- Fix MOSN reconfig fails when
MOSNConfig.servers[].listeners[].bind_port
isfalse
@alpha-baby - Set timeout for local write buffer send, avoid goroutine leak @cch123
- Fix deadloop when TLS timeout @nejisama
- Fix data isn't modified by
SetData
method indubbo.Frame
struct @lxd5866
- Add header max size configuration option. @wangfakang
- Add protocol impement choice whether need workerpool mode. And support workerpool mode concurrent configuration. @cch123
- Add UDS feature for listener. @CodingSinger
- Add dubbo protocol use xDS httproute config filter. @champly
- Optimiza http situation buffer malloc. @wangfakang
- Optimize RWMutex for SDS StreamClient. @nejisama
- Update hessian2 v1.7.0 lib. @cch123
- Modify NewStream interface, use callback replace direct. @cch123
- Refactor XProtocol connect pool, support pingpong mode, mutiplex mode and bind mode. @cch123
- Optimize XProtocol mutiplex mode, support Host max connect configuration. @cch123
- Optimize route regex config avoid dump unuse config. @wangfakang
- Fix README ant logo invalid address. @wangfakang
- Fix header override content when set a longer header to request header. @cch123
- Fix Dubbo protocol analysis attachment maybe panic. @champly
- Logger Roller supports the custom Roller. @wenxuwan
- Add a SendHijackReplyWithBody API for streamFilter. @wenxuwan
- The configuration adds option of turning off the smooth upgrade. If the smooth upgrade is turned off, different instances of MOSN can be started on the same machine. @cch123
- Optimize the MOSN integration test framework and add more unit test cases. @nejisama @wangfakang @taoyuanyuan
- DirectResponse route configuration supports the update mode of XDS. @wangfakang
- Add a new field of TLSContext for clusterManager configuration. @nejisama
- Fix the bug that UDP connection timeout during the smooth upgrade will cause an endless loop. @dengqian
- Fix the bug that call DirectResponse in the SendFilter will cause an endless loop. @taoyuanyuan
- Fix concurrency conflicts in HTTP2 stream counting. @wenxuwan
- Fix the bug that UDP connection read timeout cause data loss. @dengqian
- Fix the bug that the response StatusCode cannot be recorded correctly due to the loss of the protocol flag when doing a retry. @dengqian
- Fix the protocol boltv2 decode error. @nejisama
- Fix the bug that listener cannot be restarted automatically when listener panic. @alpha-baby
- Fix the bug that NoCache flag is invalid in variable. @wangfakang
- Fix concurrency conflicts in SDS reconnect. @nejisama
- Routing Path Rewrite supports configuring the content of Rewrite by regular expression @liangyuanpeng
- Configure new fields: Extended configuration fields, you can start the configuration by extending the configuration fields; Dubbo service discovery configuration via extended configuration fields @cch123
- New DSL feature for easy control of request processing behavior @wangfakang
- Extended implementation of StreamFilter with new traffic mirroring function @champly
- Listener configuration adds UDP support @dengqian
- Configuration format support YAML format parsing @GLYASAI
- Routing support for HTTP redirect configuration @knight42
- Istio's stats filter for personalizing metrics based on matching criteria @wzshiming
- Metrics configuration support to configure the output percentage of the Histogram @champly
- StreamFilter New state for aborting requests directly and not responding to clients @taoyuanyuan
- XProtocol hijack response support carry body @champly
- Apache SkyWalking upgrade to version 0.5.0 arugal
- Upstream Connection TLS State Determination Modification to support the determination of whether a connection needs to be re-established via a TLS-configured Hash @nejisama
- Optimize DNS cache logic to prevent DNS flooding issues that can be caused when DNS fails @wangfakang
- Fix the bug that XProtocol protocols determine protocol errors in scenarios with multiple protocols when TLS encryption is enabled @nejisama
- Fix bug in AccessLog where variables of prefix match type don't work @dengqian
- Fix bug where Listener configuration parsing is not handled correctly @nejisama
- Fix Router/Cluster bug that fails to save when the Name field contains a path separator in the file persistence configuration type @nejisama
- Support for Istio 1.5.X @wangfakang @trainyao @champly
- go-control-plane upgrade to version 0.9.4
- xDS support for ACK, new Metrics for xDS.
- Istio sourceLabels filtering support
- probe interface with pilot-agent support
- support for more startup parameters, adapting to Istio agent startup scenarios
- gzip, strict-dns, original-dst support for xDS updates.
- Remove Xproxy Logic
- Maglev Load Balancing Algorithm Support @trainyao
- New connection pool implementation for supporting message class requests @cch123
- New Metrics for TLS Connection Switching @nejisama
- Metrics for adding HTTP StatusCode @dengqian
- Add Metrics Admin API output @dengqian
- New interface to query the number of current requests for proxy @zonghaishang
- Support for HostRewrite Header @liangyuanpeng
- Upgrade tars dependencies to fix compilation issues with higher versions of Golang @wangfakang
- xDS Configuration Analysis Upgrade Adaptation Istio 1.5.x @wangfakang
- Optimize log output from proxy @wenxuwan
- DNS Cache default time changed to 15s @wangfakang
- HTTP Parameter Route Matching Optimization @wangfakang
- Upgrade the fasthttp library @wangfakang
- Optimizing Dubbo Request Forwarding Encoding @zonghaishang
- Request max body configurable for HTTP support @wangfakang
- Fix Dubbo Decode bug that fails to parse attachment @champly
- Fix bug where streams could be created before HTTP2 connection is established @dunjut
- Fix HTTP2 Handling Trailer null pointer exception @taoyuanyuan
- Fix bug where HTTP request headers are not standardized by default @nejisama
- Fix panic exceptions caused by disconnected connections during HTTP request processing @wangfakang
- Fix read/write lock copy issue with dubbo registry @champly
- Support Strict DNS Cluster @dengqian
- Stream Filter @wangfakang that supports GZip processing
- Dubbo service registry complete Beta version @cch123
- Stream Filter @NeGnail that supports standalone fault isolation
- Integrated Sentinel flow limiting capability @ansiz
- Optimize implementation of EDF LB and re-implement WRR LB using EDF @CodingSinger
- Configure to get ADMIN API optimizations, add features and environment variable related ADMIN API @nejisama
- Update that triggers a health check when updating Host changed from asynchronous mode to synchronous mode @nejisama
- Updated the Dubbo library to optimize the performance of Dubbo Decode @zonghaishang
- Optimize Metrics output in Prometheus, using regularity to filter out illegal Key @nejisama
- Optimize MOSN's return status code @wangfakang
- Fix concurrent conflict issues with health check registration callback functions @nejisama
- Fix the error where the configuration persistence function did not handle the null configuration correctly @nejisama
- Fix the problem that DUMP as a file fails when ClusterName/RouterName is too long @nejisama
- Fix the problem of not getting the XProtocol protocol correctly when getting it @wangfakang
- Fix the problem with fetching the wrong context when creating StreamFilter @wangfakang
- Support Skywalking @arugal
- Stream Filter adds a new phase of Receive Filter execution, which allows you to execute Receive Filter @wangfakang again after MOSN has finished routing Host
- HTTP2 supports streaming @peacocktrain @taoyuanyuan
- FeatureGate adds interface KnownFeatures to output current FeatureGate status @nejisama
- Provide a protocol-transparent way to obtain requested resources (PATH, URI, ARG), with the definition of resources defined by each protocol itself @wangfakang
- New load balancing algorithm
- Support for ActiveRequest LB @CodingSinger
- Support WRR LB @nejisama
- XProtocol protocol engine optimization @neverhook
- Modifies the XProtocol heartbeat response interface to support the protocol's heartbeat response to return more information
- Optimize connpool for heartbeat triggering, only heartbeats will be triggered if the protocol for heartbeats is implemented
- Dubbo library dependency version updated from v1.5.0-rc1 to v1.5.0 @cch123
- API Adjustments, HostInfo added health check related interface @wangfakang
- Optimize circuit breaking function @wangfakang
- Responsible for balanced selection logic simplification, Hosts of the same address multiplex the same health check mark @nejisama @cch123
- Optimize HTTP building logic and improve HTTP building performance @wangfakang
- Log rotation logic triggered from writing logs, adjusted to timed trigger @nejisama
- Typo fixes @xujianhai666 @candyleer
- Fix the xDS parsing fault injection configuration error @champly
- Fix the request hold issue caused by the MOSN HTTP HEAD method @wangfakang
- Fix a problem with missing StatusCode mappings in the XProtocol engine @neverhook
- Fix the bug for DirectReponse triggering retries @taoyuanyuan
- Support the extension of Listener Filter, the transparent hijacking capability is implemented based on Listener Filter @wangfakang
- New Set method for variable mechanism @pxzero
- Added automatic retry and exception handling when SDS Client fails @taoyuanyuan
- Improve TraceLog and support injecting context @nejisama
- Refactored XProtocol Engine and reimplemented SOFARPC protocol @neverhook
- Removed SOFARPC Healthcheck filter and changed to xprotocol's built-in heartbeat implementation
- Removed the original protocol conversion (protocol conv) support of the SOFARPC protocol, and added a new protocol conversion extension implementation capability based on stream filter
- xprotocol adds idle free and keepalive
- Protocol analysis and optimization
- Modify the Encode method parameters of HTTP2 protocol @taoyuanyuan
- Streamlined LDS interface parameters @nejisama
- Modified the routing configuration model, abandoned
connection_manager
@nejisama
- Optimize Upstream dynamic domain name resolution mechanism @wangfakang
- Optimized TLS encapsulation, added error log, and modified timeout period in compatibility mode @nejisama
- Optimize timeout setting, use variable mechanism to set timeout @neverhook
- Dubbo parsing library dependency upgraded to 1.5.0 @cch123
- Reference path migration script adds OS adaptation @taomaree
- Fix the problem of losing query string during HTTP2 protocol forwarding @champly
- Support multi-process plugin mode
- Startup parameters support service-meta parameters
- Supports abstract uds mode to mount sds socket
- Separate some mosn base library code into mosn.io/pkg package (github.com/mosn/pkg)
- Separate mosn interface definition to mosn.io/api package (github.com/mosn/api)
- The log basic module is separated into mosn.io/pkg, and the log of mosn is optimized
- Optimize FeatureGate
- Added processing when failed to get SDS configuration
- When CDS deletes a cluster dynamically, it will stop the health check corresponding to the cluster
- The callback function when sds triggers certificate update adds certificate configuration as a parameter
- Fixed a memory leak issue when SOFARPC Oneway request failed
- Fixed the issue of 502 error when receiving non-standard HTTP response
- Fixed possible conflicts during DUMP configuration
- Fixed the error of Request and Response Size of TraceLog statistics
- Fixed write timeout failure due to concurrent write connections
- Fixed serialize bug
- Fixed the problem that the memory reuse buffer is too large when the connection is read, causing the memory consumption to be too high
- Optimize Dubbo related implementation in XProtocol
- Support variable mechanism, accesslog is modified to use variable mechanism to obtain information
- Refactored package reference path for
sofastack.io/sofa-mosn
tomosn.io/mosn
- Fixed the bug that buf is not empty when Write is connected
- Fixed HTTP2 stream counting bug
- Fix memory leak caused by proxy coroutine panic
- Fix memory leak caused by read and write coroutine stuck in specific scenarios
- Fix the bug of xDS concurrent processing
make image
output image modification, modified to a MOSN example- Fixed the field of getting CallerAPP in TraceLog of SOFA RPC
- Metrics added: count of requests that MOSN failed to process
- Improved the write performance of Metrics shared memory with MMAP
- Reduced the default coroutine pool size and optimize memory usage
- Optimized log output
- Fixed a bug where if there is a log file when MOSN starts, it is not rotated normally.
- Added interface: Support connection returns current availability status
- Manage API to add default help page
- Reduced connections and request default memory allocation
- Optimized machine list information storage in ConfigStore
- Metrics optimization
- SOFARPC heartbeat requests are no longer recorded in Metrics
- Optimize shared memory mode for Metrics use
- Optimized profile reading, ignoring empty files and non-json files
- Optimized the xDS client
- The xDS client is modified to start completely asynchronously without blocking the startup process
- Optimize xDS client disconnect retry logic
- Fixed bug where hot upgrade connection migration would fail in TLS Inspector mode
- Fixed a bug where the log rotation configuration could not be updated correctly
- Fixed a bug where the log did not output log time correctly at the Fatal level
- Fixed a bug in which a connected read loop would cause an infinite loop in a particular scenario
- Fixed a bug in HTTP connection count statistics errors
- Fixed a bug that prevented the channel from being properly closed when the connection was closed
- Fixed bug handling of buffers when handling response to BoltV2 protocol
- Fixed concurrency violations when reading and writing persistent configurations
- Fixed concurrency conflicts that receive responses and trigger timeouts
- Added FeatureGates support
- Added Metrics: request processing time in MOSN
- Support for restarting listening sockets that have been closed at runtime
- Upgraded to Go 1.12.7
- Modified the xDS client startup order, now it will start before the MOSN service
- Fixed a bug that did not properly trigger a request reset when an RPC request was written.
- Fixed memory leak bugs when no upstream response was received
- Fixed a bug where some of the request parameters would be lost when the HTTP request was retried
- Fixed a bug that could cause panic when DNS resolution failed
- Fixed a bug that didn't time out when the connection was established in TLS Inspector mode
- prometheus output format no longer supports gzip
- Configured the new idle connection timeout
connection_idle_timeout
field, the default value is 90s. MOSN will actively close the connection when the idle connection timeout is triggered - Error log adds Alert interface and outputs error log with error code format
- Support SDS to obtain TLS certificate
- Refactored upstream module
- Refactored the internal Cluster implementation structure
- Update Host implementation changed from delta update to full update to speed up update
- Refactored Snapshot implementation
- Optimized some memory usage
- Modified the parameters of some interface functions
- Refactored the implementation of Tracing and supports more extensions
- Optimized connected Metrics statistics
- Optimized the output format of Metrics in prometheus mode
- Optimized IO write coroutines to reduce memory footprint
- Fixed possible concurrency violations when creating Loggers concurrently
- Fixed a bug that caused a panic due to a response and a trigger timeout
- Fixed concurrent bugs when HTTP processing connection reset
- Fixed bug where the log file could not be rotated correctly after it was deleted
- Fixed a concurrent bug when HTTP2 handled goaway
- Configure a hybrid mode that supports both xDS mode and static configuration
- Support management API extensible registration new API
- Supports dynamic update of StreamFilter configuration, which can take effect on all connections
- Refactored package import path
- Changed from
github.com/alipay/sofa-mosn
tosofastack.io/sofa-mosn
- Changed from
- Optimized the output structure of the error log
- Improved implementation of configuration file json parsing
- Optimized memory reuse for large buffer scenarios
- Optimized the use of shared memory for Metrics when first booting
- Fixed bug where ProxyLogger's log level could not be dynamically updated
- Fixed connection read and write loops that could cause panic bugs
- Fixed a bug that didn't work correctly when deleting multiple clusters at the same time
- Fixed a bug where the number of active requests in Metrics was incorrectly counted in concurrency
- Fixed a bug where the HTTP connection triggered a panic when resetting and receiving a response concurrency
- Support for new profile models
- Cluster configuration support is set to a separate directory
- Routing configuration support is set to a separate directory
- Support for multiple certificate configurations
- Compatible with old profile models
- Add new Metrics to show basic information
- version number
- version of Go used
- MOSN runtime state
- the address to listen to
- Support for Metrics filtering
- Support for registering callback functions when MOSN changes state
- Support Request oneway
- Support batch modification of error log level, support batch shutdown of Access log
- Refactored the Proxy threading model
- Each request is processed using a separate Goroutine
- Use the state machine instead of the callback function to request the processing flow to be modified to serial
- Refactored the connection pool selection model, try to avoid selecting the backend to the exception
- Optimized Metrics output performance
- Optimized error log output
- Optimized SOFA RPC protocol parsing performance
- Extended the implementation of the context, reduce the number of nesting layers and optimize performance when compatible with standard contexts
- Fixed a bug in the parsing part of the json configuration
- Fixed a bug where HTTP would trigger Goroutine leaks in certain scenarios
- Fixed bug in IO write concurrency scenarios that could cause panic
- Fixed a bug where HOST information was not deduplicated
- Metrics added prometheus mode output
- Metrics supports exclusion configuration
- Support dynamic opening and closing of logs, support dynamic adjustment of error log level
- HTTP protocol support 100 continue
- Support Tars protocol
- Connections that support the SOFARPC protocol send heartbeats when idle
- Support for creating connections based on sub-protocols of SOFARPC
- Support for new smooth upgrade methods
- Active health check supports scalable implementation, default is tcp dial
- Memory Multiplexing Module supports scalability
- Load balancing implementation support for scalability
- Profile resolution support is extensible, default is json file parsing
- Refactored the stream package structure, modified some API interfaces
- Log module modified to asynchronous write log
- Refactored xDS configuration conversion module
- Refactored implementation of the routing chain
- Move some common function functions to the utils package directory
- Route matching optimization, supporting KV matching in specific scenarios
- The request status code recorded in the request message is uniformly converted to the HTTP status code as a standard
- Optimized Tracer implementation to improve the performance of Tracer records
- Optimized performance for profile persistence
- Optimized performance for dynamically updating backend machine lists
- Fixed deadlock bug in workpool
- Fixed bug with HTTP2 error handling trailer
- Fixed concurrency issues with buffer reuse
- Support gRPC via HTTP2
- Support HTTP/HTTP2 protocol automatic identification
- Tracer supporting SOFA RPC protocol
- Add more routing features
- Support for retry policy configuration
- Policy configuration that supports direct response
- Support for adding and deleting custom fields in HTTP header
- Support for rewriting the HTTP protocol Host and URI
- Support for scalable routing implementation
- Support QPS current limiting and rate based current limiting
- Support fault injection
- Support for Mixer
- Support for obtaining MOSN runtime configuration
- Refactored the protocol framework to support the extension of the SOFA RPC sub-protocol
- Optimized support for the HTTP protocol, performance improvement of about 30%
- Optimized support for HTTP2 protocol, performance improvement of about 100%
- Optimized implementation of TCP Proxy
- Fixed a bug in smooth upgrades
- Fixed bug with HTTP/HTTP2 protocol processing
- Fixed some bugs with potential memory leaks
- Support for smooth migration of Metrics
- Smooth migration with TLS support
- Optimized CPU and memory usage for SOFARPC protocol resolution
- Support stand-alone TLS switch
- Support Dubbo protocol through XProtocol protocol
- Support for route matching rules with weights
- Added xDS client implementation
- Support for LDS
- Support CDS
- Support for four layers of Filter to expand
- Support TLS configuration scalable
- Support for IO processing based on native epoll
- Enhanced scalability for protocol parsing
- Added XProtocol, which can be implemented by XProtocol extension protocol
- Implement memory reuse framework to reduce memory allocation overhead
- Implemented a programmable, scalable network extension framework MOSN
- Achieved the protocol framework
- Support SOFA RPC protocol
- Support HTTP protocol
- Support HTTP2 protocol
- Support for scalable mode based on Stream Filters
- Support back-end cluster management and load balancing
- Support simple route matching rules
- Support smooth restart and smooth upgrade